cp -r ~/Local/Test/* ~/Документы/Разные/2021/04/cp: cannot create directory '~/Документы/Разные/2021/04': No such file or directory
mkcp() {
test -d "${@: -1}" || mkdir -p "${@: -1}"
cp "$@"
}mkcp -r ~/Local/Test/* ~/Документы/Разные/2021/04/
~/.bashrc, а то ровно до перезагрузки будет работать.. ~/.bashrc
~/.bashrc считывается при запуске bash не надо ничего активировать.~/.bashrc, то да она бы сохранилась до перезапуска bash, но в таком случае всё равно непонятно причём тут . (алиас для команды source).~/custom_functions), то да её можно было бы инициализировать выполнив source ~/custom_functions или . ~/custom_functions, но смысла в этом мало - проще эту команду вписать в ~/.bashrc что бы она выполнялась автоматически в момент запуска bash
.bashrc, что после перезагрузки системы, нифига не работало!. ~/.bashrc
echo -e 'mkcp() {\n test -d "${@: -1}" || mkdir -p "${@: -1}"\n cp "$@"\n}' >> ~/.bashrc; . ~/.bashrc
.bashrc в текущей сессии консоли/терминала (если не выходить из неё).. ~/.bashrc
или
source ~/.bashrc активирует введённое в текущей сессии консоли/терминала.
mkcp() {
test -d "${@: -1}" || sudo mkdir -p "${@: -1}"
sudo cp "$@"
}sudo -i mkcp -r ~/Local/Test/* /opt/2021/04/
mkdir -p "${@: -1}"
cp -r -n "$@"
чтоб и работало и с системными каталогами, без всякого sudo и ввода пароля
добавив функцию в .bashrc
mkdir $HOME/binecho "PATH=$PATH:$HOME/bin" >> $HOME/.bashrc
/root/.bashrc не проблема, но только будет работать только при входе в root:sudo su -
или
sudo -i
/usr/local/bin/mkcp работать такой способ копирования внутри простого .sh-скрипта отказывается. Подскажите, пожалуйста, как это реализовать в скрипте?copy.sh, например, пусть и с заголовком #!/bin/bash - ничего не получается.copy.sh: 1: mkcp: not found
cp -r ~/Local/Test/* ~/Документы/Разные/2021/04/ то выдаст ошибку, но если оставить путь копирования только до ~/Документы/Разные/, то срабатывает. Затем если выполнить ~/Документы/Разные/2021/ тоже срабатывает. Только одна поддериктория за раз.