Я хотел бы использовать ls для последнего созданного каталога в данном каталоге (мы создаем новую папку для каждого выпуска), а затем cd в этот каталог. Я хотел бы создать для этого псевдоним, чтобы мне не приходилось помнить, как каждый раз получать доступ к последней директории, когда мне это нужно.
Вот что я пробовал:
ls -ltr ~/workspace/docs/new-docs/Mapper/Documentation/ | tail -1 | cd
cd $(ls -ltr ~/workspace/docs/new-docs/Mapper/Documentation/ | tail -1)
проблема, похоже, в том, что если я заказываю результаты, я получаю разрешения на файл в качестве вывода. Любая помощь приветствуется!
ОБНОВИТЬ:
$cd `ls -dt ~/workspace/docs/new-docs/Mapper/Documentation/* | head -1`
-bash: cd: drwxr-xr-x: No such file or directory
Ну, вы указали -l
возможность ls
, что приводит к долгому выводу. Попробуйте бросить это.
ls -tr ~/workspace/docs/new-docs/Mapper/Documentation/
Вам также необходимо убедиться, что путь добавлен к желаемому имени каталога. Сделайте это, добавив *
к пути и указав -d
возможность ls
.
ls -dtr ~/workspace/docs/new-docs/Mapper/Documentation/*
Для повышения производительности вы также должны подключиться к head
а не наоборот.
ls -dt ~/workspace/docs/new-docs/Mapper/Documentation/* | head -1
Последняя команда:
cd `ls -dt ~/workspace/docs/new-docs/Mapper/Documentation/* | head -1`
Следует упомянуть пару вещей:
ls -dt [PATH]/*
также перечислит файлы; это может быть проблемой, если в каталоге есть файлы.Итак, еще пара быстрых вариантов:
cd "`ls -dt ~/workspace/docs/new-docs/Mapper/Documentation/*/ | head -1`"
или, если поддерживается вашим ls
команда
cd "`ls -t --group-directories-first ~/workspace/docs/new-docs/Mapper/Documentation | head -1`"