Кажется, что просто добавление новых строк к config.dat
и passwords.dat
работает для будущих установок.
Так:
config.dat
и passwords.dat
(Я сравнил файлы до и после .dat
).dat
файлы на других узлах сервера $(...)
— это синтаксис оболочки Korn/POSIX. Подстановка команд в (t )csh выполняется с помощью `...`
.
В tcsh
вы можете сделать:
set dirs = (./*/); cd $dirs[$#dirs]:q
В cd
в последний каталог (или символическую ссылку на каталог )в лексическом списке не -скрытых каталогов в текущем каталоге.
Это лучше, чем:
cd "`ls | tail -n 1`"
Это не сработает, если имена файлов содержат символы новой строки или начинаются с-
(или +
, за которыми следуют цифры ), или если последний файл в текущем каталоге не является каталогом.
Ваш синтаксис Ksh cd $(ls | tail -1)
еще хуже, так как он также не будет работать с именами файлов, содержащими пробелы, табуляцию или подстановочные знаки.
Обратите внимание, что порядок является лексическим, например, 2
сортирует после10
. Для числовой сортировки с реализацией GNU ls
вы можете использовать опцию -v
(cd "`ls -v | tail -n 1`"
)
С оболочкой zsh
можно:
cd./*(/[-1])
Или также учитывать символические ссылки на каталоги:
cd./*(-/[-1])
Чтобы отсортировать файлы по номерам:
cd./*(n-/[-1])
Ошибка вызвана тем, что строка, которую вы получаете, не является именем каталога, а представляет собой строку, содержащую некоторую информацию о каталоге, например drwxrwxr-x. 3 alessiosavi alessiosavi 4096 Sep 10 09:51 workplace-tmp
, а не ваше целевое имя, котороеworkplace-tmp
Для завершения работы мы можем выполнить следующий шаг:
1. Сохраните последний каталог в переменной
2. Убедитесь, что переменная является каталогом
3. Перейдите в каталог
file=$(ls -l | tail -n1 | awk '{print $9}') ; if [ -d "$file" ];then cd $file; else echo "$file not a directory" ; fi
«Это bash, вам нужна только 1 строка»