Я хотів би побудувати коротку функцію, щоб зробити наступне. Скажімо, я переміщую файл "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оригінальне місцеположення, символьні посилання є дуже хорошою альтернативою, оскільки вам потрібно лише один раз посилання, і тоді вона завжди вказуватиме на останню версію.