[Советы 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 для извлечения файловых архивов различных типов