web-dev-qa-db-fra.com

remplacer un fichier entier par un autre fichier dans bash

J'ai appris à remplacer une ligne à l'aide d'un script bash, mais je souhaite apprendre à remplacer un fichier entier par un autre fichier situé dans un autre dossier portant le même nom. Est-ce possible??

12
Gʀɪᴍ
cp -f [oringinal file] [new file]

Copie le fichier d'origine et écrase le fichier cible (d'où -f qui signifie "force").

18
Nick Brunt

Si vous essayez de copier uniquement le contenu du fichier, essayez

cat /first/file/same_name > /second/file/same_name

Cela écrasera tout le contenu du deuxième fichier avec le contenu du premier. Toutefois, votre propriétaire, votre groupe et les autorisations du deuxième fichier resteront inchangés.

17
Joseph

Aujourd'hui, j'avais besoin de quelque chose de similaire, le seul changement est que je dois remplacer l'ancienne version du fichier php dans le répertoire de nombreux utilisateurs par une nouvelle version. Je me dirige ici et mélangez simplement la réponse avec la réponse de l'autre pile et résolvez mon problème. J'ai utilisé le code @joseph avec la commande find.

Je partage mon petit code ici, j'espère que cela aidera quelqu'un.

for file in $(find /home/*/ -type f -name 'timthumb.php');
do
    cat /home/timthumb.php > $file;
done
0
adaptable.services

Utilisez ces commandes:

mv file1 file2

Si le fichier2 n'existe pas, fichier1 est renommé fichier2. Si fichier2 existe, son contenu est remplacé par le contenu de fichier1.

mv -i file1 file2

Comme ci-dessus, toutefois, étant donné que l'option "-i" (interactive) est spécifiée, si le fichier 2 existe, l'utilisateur est invité à le remplacer avant qu'il ne soit écrasé par le contenu du fichier 1.

mv file1 file2 file3 dir1

Les fichiers fichier1, fichier2, fichier3 sont déplacés vers le répertoire dir1. dir1 doit exister ou mv se ferme avec une erreur.

mv dir1 dir2

Si dir2 n'existe pas, alors dir1 est renommé dir2. Si dir2 existe, le répertoire dir1 est créé dans le répertoire dir2.

0
user1635666