На этот вопрос уже есть ответ здесь:
Я использую облако Google, работающее на Ubuntu.
Каждый раз, когда я загружал файл, мне приходилось копировать cp filename.zip ../../directory/
, и мне приходилось снова вводить путь cd ../../ каталог /
, чтобы перейти туда и разархивировать мой файл.
Мне нужно знать, есть ли какая-нибудь команда, которую я могу скопировать и записать в этот каталог, не вводя дважды длинный путь к каталогу.
Это не одна единственная команда, но в bash
мой любимый способ сделать, который является:
$ cp filename.zip ../../directory/
$ cd :ESC: .
В последней строке я имею в виду, поражает Esc +.. Эта комбинация выбирает последний аргумент от последней команды, в Вашем случае это ../../directory/
.
Другой способ сделать, который является:
$ cp filename.zip ../../directory/; cd $_
Можно найти подобные команды на stackoverflow.com: Как использовать аргументы от предыдущей команды?.
Можно добавить эту функцию к Вашему .bashrc
:
cpcd() { cp "$1" "$2" && cd "$2" ; }
Затем можно звонить cpcd
с файлом Вы хотите скопировать как 1-й аргумент и каталог, в который Вы хотите копировать/изменять как 2-е.
например. cpcd file.txt ~/Downloads
скопирует file.txt
в ~/Downloads
, и Вы закончите в ~/Downloads
также.
Можно даже добавить ls
визуально видеть, что файл находится действительно в желаемом каталоге.
cpcd() { cp "$1" "$2" && cd "$2" && ls; }
Или, для реальной гарантии этого...
cpcd() {
cp "$1" "$2" && cd "$2"
if [ -f ./"$1" ]
then
echo "Successfully copied '$1' into '$2'."
fi
}