Поиск по сайту:

[Советы Bash] Как выполнить cp или mv и cd одной командой

На днях мы научились команде cd и ls. Сегодня мы увидим еще один интересный совет по Bash — cp или mv и cd одной командой. Это означает, что мы собираемся скопировать или переместить файлы/каталоги из одного места в другое и мгновенно cd в целевой каталог. Конечно, мы можем сделать это с помощью однострочной команды. Например, можно скопировать или переместить файлы/каталоги в другой каталог и перейти в целевой каталог с помощью команды:

cp source destination && cd destination

Или,

mv source destination && cd destination

Однако сейчас мы не собираемся этого делать. Мы используем простую функцию bash, чтобы объединить команду cp или mv и команду cd и запустить ее как одну команду. Этот трюк должен работать на всех Unix-подобных системах, поддерживающих BASH.

Как cp или mv и cd одной командой

Откройте файл ~/.bashrc в своем любимом редакторе:

nano ~/.bashrc

Добавьте в конце следующие строки:

#cp and cd in one command
cpcd (){
  if [ -d "$2" ];then
    cp $1 $2 && cd $2
  else
    cp $1 $2
  fi
}

#mv and cd in one command
mvcd (){
  if [ -d "$2" ];then
    mv $1 $2 && cd $2
  else
    mv $1 $2
  fi
}

Функция Bash для cp или mv и cd в одной команде

Сохраните и закройте файл. Выполните следующую команду, чтобы изменения вступили в силу.

source ~/.bashrc

Теперь скопируйте или переместите файлы/каталоги из одного места в другое, и вы автоматически попадете в место назначения.

Давайте создадим несколько примеров каталогов и файлов.

mkdir dir1 dir2
touch file1 file2

Теперь скопируйте файл1 в каталог1, используя команду:

cpcd file1 dir1
pwd
/home/sk/dir1

Как видите, приведенная выше команда копирует file1 в dir1, а затем автоматически cd в папку dir1.

Затем переместите file2 в dir2 с помощью команды:

cd
mvcd file2 dir2
pwd
/home/sk/dir2

Эта команда копирует file2 в dir2 и автоматически cd в местоположение dir2.

Пример вывода:

cp или mv и cd в одной команде

Надеюсь это поможет.

Другие советы по Bash

  • Переименование файлов без двойного ввода полного имени в Linux
  • Функция Bash для извлечения файловых архивов различных типов

Статьи по данной тематике