Estou tentando copiar arquivos e subpastas da pasta A sem o próprio A. Por exemplo, uma pasta contém a seguir:
| file1.txt
| file2.txt
| subfolder1
Executar o próximo comando me dá um resultado errado:
sudo cp -r /home/username/A/ /usr/lib/B/
O resultado é
/usr/lib/B/A/...copied files...
ao invés de..
/usr/lib/B/...copied files...
Como posso alcançar o esperado sem a pasta de origem
bash
command-line
cp
pushandpop
fonte
fonte
A/*
faz sentido, mas há situações em que não funciona.shopt
ébash
específico. Comzsh
, use*(D)
. comksh93
,FIGNORE='@(.|..)'
.cp -t
é específico do GNU. Afind
pessoa não vai funcionar convenientemente, uma vez que irá copiar ambosA/
e seu conteúdo (incluindo subdiretórios) várias vezes.-maxdepth 1
(-mindepth
e-maxdepth
sendo extensões GNU agora também apoiado por alguns outros portably.find .../. ! -name . -prune -exec ....
)find .../.
causa um erro aqui.Se estiver em um sistema GNU, de
man cp
:Isso permite que você escreva
cp -rT /home/username/A/ /usr/lib/B/
para fazer exatamente a coisa certa.fonte
cp
. Mas é verdade que-T
não funcionará com um não-GNUcp
.Diga
cp
para copiar o conteúdo do diretório e não o próprio diretório:fonte
shopt -s dotglob
isso funcione se houver algum arquivo de ponto/home/username/A/
.