Есть ли какая-нибудь команда для копирования и cd в этот каталог одновременно в терминале [дубликат]

Я использую облако Google, работающее на Ubuntu.

Каждый раз, когда я загружал файл, мне приходилось копировать cp filename.zip ../../directory/, и мне приходилось снова вводить путь cd ../../ каталог / , чтобы перейти туда и разархивировать мой файл.

Мне нужно знать, есть ли какая-нибудь команда, которую я могу скопировать и записать в этот каталог, не вводя дважды длинный путь к каталогу.

4
задан 13 February 2018 в 09:19

2 ответа

Это не одна единственная команда, но в bash мой любимый способ сделать, который является:

$ cp filename.zip ../../directory/
$ cd :ESC: .

В последней строке я имею в виду, поражает Esc +.. Эта комбинация выбирает последний аргумент от последней команды, в Вашем случае это ../../directory/.

Другой способ сделать, который является:

$ cp filename.zip ../../directory/; cd $_

Можно найти подобные команды на stackoverflow.com: Как использовать аргументы от предыдущей команды?.

7
ответ дан 1 December 2019 в 08:59

Можно добавить эту функцию к Вашему .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
}
3
ответ дан 1 December 2019 в 08:59

Другие вопросы по тегам:

Похожие вопросы: