Я хотів би побудувати коротку функцію, щоб зробити наступне. Скажімо, я переміщую файл "file.tex" в каталог своїх документів:
mv file.tex ~/Documents
Потім я хотів би перейти cd
до цього каталогу:
cd ~/Documents
Я хотів би узагальнити це до будь-якого каталогу, щоб я міг це зробити:
mv file.tex ~/Documents
follow
і попросіть follow
команду прочитати призначення з попередньої команди, а потім виконати відповідно. Для простого каталогу це не економить багато часу, але при роботі з вкладеними каталогами було б надзвичайно просто користуватися
mv file.tex ~/Documents/folder1/subfolder1
follow
Я думав, що це буде досить просто, і що я можу зробити щось подібне:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
але це, здається, не працює. Якщо я лунаю $place
, я отримую потрібний рядок (тестую його ~/Documents
), але остання команда повертається
No such file or directory
Каталог, безумовно, існує. Я в збитку. Не могли б ви мені допомогти?
cd
alt +, .
щоб замінити останній маркер попередньої команди. Повторіть, щоб повернутися в історію остаточних жетонів. (Я кажу токен не аргумент, тому що foo &
сприймає &
як кінцевий маркер.) Ви можете використовувати числовий аргумент (наприклад, з escape-3 alt +. Наприклад).
file.tex
оригінальне місцеположення, символьні посилання є дуже хорошою альтернативою, оскільки вам потрібно лише один раз посилання, і тоді вона завжди вказуватиме на останню версію.