Je suis en train de copier des fichiers et sous - dossiers Un dossier sans A lui - même. Par exemple, Un dossier contient ensuite:
| file1.txt
| file2.txt
| subfolder1
L'exécution de la commande suivante me donne un résultat erroné:
sudo cp -r /home/username/A/ /usr/lib/B/
Le résultat est
/usr/lib/B/A/...copied files...
au lieu de..
/usr/lib/B/...copied files...
Comment puis-je atteindre celui attendu sans origin-folder
bash
command-line
cp
pushandpop
la source
la source
A/*
sens, mais il y a des situations dans lesquelles cela ne fonctionne pas.shopt
estbash
spécifique. Aveczsh
, utilisez*(D)
. avecksh93
,FIGNORE='@(.|..)'
.cp -t
est spécifique à GNU. Celui-find
ci ne fonctionnera pas correctement car il copiera plusieurs foisA/
son contenu (y compris les sous-répertoires).-maxdepth 1
(-mindepth
et-maxdepth
étant des extensions GNU maintenant également supporté par quelques autres. Portablefind .../. ! -name . -prune -exec ....
)find .../.
provoque une erreur ici.Si vous êtes sur un système GNU, à partir de
man cp
:Cela vous permet d'écrire
cp -rT /home/username/A/ /usr/lib/B/
pour faire exactement ce qu'il faut.la source
cp
. Mais c'est vrai que-T
cela ne fonctionnera pas avec un non-GNUcp
.Dites
cp
de copier le contenu du répertoire et non le répertoire lui-même:la source
shopt -s dotglob
que cela fonctionne s'il y a des fichiers point dans/home/username/A/
.