На днях мы узнали, как выполнять cd и ls в одной команде.
Сегодня мы увидим еще один крутой совет по bash – cp или mv и 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
}
Сохраните и закройте файл.
Выполните следующую команду, чтобы изменения вступили в силу.
$ source ~/.bashrc

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

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

$ mkdir dir1 dir2
$ touch file1 file2

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

$ cpcd file1 dir1
$ pwd
/home/itisgood/dir1

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

Затем переместите file2 в dir2, используя команду:

$ cd
$ mvcd file2 dir2
$ pwd
/home/itisgood/dir2
Эта команда копирует file2 в dir2, и он автоматически переходит в папку dir2.
Поделитесь статьей:

Добавить комментарий