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

Если вы хотите сохранить все свои файлы, вы можете попробовать запустить установку с диска / usb, перейдите к «Попробуйте Ubuntu без установки». Доступ ко всем файлам на вашем диске и их резервное копирование в облаке или отдельном диске, а затем переустановите, если это то, что вы просите.

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

4 ответа

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

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

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

Другой способ сделать это:

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

Вы можете найти похожие команды на stackoverflow.com: How использовать аргументы из предыдущей команды?. [! ​​d5]

7
ответ дан 22 May 2018 в 13:08
  • 1
    Вы также можете попробовать Alt+. вместо escape-последовательности . – Melebius 13 February 2018 в 11:33
  • 2
    Это гораздо более простой подход. Спасибо. – PJ3 13 February 2018 в 11:40
  • 3
    25 лет использования bash, и вы все еще можете узнать что-то новое об этом ... – Gerald Schneider 13 February 2018 в 11:46
  • 4
    @GeraldSchneider yup, я узнал об этом недавно ... после многих лет ... – hiro protagonist 13 February 2018 в 11:59

Вы можете добавить эту функцию к своему .bashrc:

cpcd() { cp "$1" "$2" && cd "$2" ; }

Затем вы можете вызвать cpcd с файлом, который вы хотите скопировать, в качестве первого аргумента и каталога, который вы хотите скопировать / изменить на 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 }
7
ответ дан 23 July 2018 в 21:36

Вы можете добавить эту функцию к своему .bashrc:

cpcd() { cp "$1" "$2" && cd "$2" ; }

Затем вы можете вызвать cpcd с файлом, который вы хотите скопировать, в качестве первого аргумента и каталога, который вы хотите скопировать / изменить на 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
ответ дан 22 May 2018 в 13:08
  • 1
    Я добавил файл .bashrc в мой текущий каталог с cpcd() { cp "$1" "$2" && cd "$2" && ls; } и использовал команду cpcd() public.zip ../../var/, но я получаю -bash: syntax error near unexpected token public.zip любую идею? – PJ3 13 February 2018 в 10:40
  • 2
    Вам не понадобится () после cpcd. Попробуйте cpcd public.zip ../../var/? – Kevin 13 February 2018 в 10:43
  • 3
    Да. оно работает. Спасибо. – PJ3 13 February 2018 в 11:33

Вы можете добавить эту функцию к своему .bashrc:

cpcd() { cp "$1" "$2" && cd "$2" ; }

Затем вы можете вызвать cpcd с файлом, который вы хотите скопировать, в качестве первого аргумента и каталога, который вы хотите скопировать / изменить на 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
ответ дан 17 July 2018 в 20:55

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

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