3 votes

Copier des fichiers d'un répertoire vers un sous-répertoire (à l'exclusion du sous-répertoire lui-même)

J'ai créé un dossier (répertoire) nommé Parent qui contient plusieurs fichiers (à savoir file1 file2 ... file100 ) et les sous-répertoires ( Folder2 , Folder3 etc.) et un sous-répertoire particulier nommé Child1 qui peut elle-même contenir des fichiers et des dossiers. Je veux maintenant copier tout le contenu de Parent à l'exclusion Child1 dans le dossier Child1 .

Le contenu final de "Child1" devrait ressembler à ceci :

 Old content of Child1
 file1 ... file100 + Folder2 Folder3 + etc.

Comment y parvenir ?

0voto

waltinator Points 32821

La méthode la plus simple consiste à déplacer le Child1 ailleurs, temporairement :

cd Parent
mv Child1 ..
mv * ../Child1
mv ../Child1 .

0voto

lenz Points 261

Si les fichiers s'appellent "file1", etc., vous pouvez le faire :

cd Parent
cp file* Child1/

Sinon, vous devrez énumérer les fichiers dans la commande cp.

-1voto

llt Points 469
find Parent/ -maxdepth 1 -type f | xargs cp -t Parent/Child/

Cette opération permet de trouver tous les fichiers (à l'exclusion des répertoires) qui se trouvent dans le répertoire Parent/ et de copier chacun de ces fichiers dans le répertoire Parent/Child.

find

    -type f match file only
    -maxdepth 1 find only in the Parent/ directory, do not find in directories inside Parent

cp

    -t target the directory where you want to copy the files

-3voto

Daudi Points 151

Vous pouvez utiliser ls pour énumérer le contenu de "Parent",

envoyer le résultat à grep -v pour filtrer "Child1",

puis envoyer la liste obtenue à cp .

Ceci devrait faire l'affaire : (à partir du répertoire "Parent")

cp \`ls | grep -v '^Child1$'\` Child1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X