Annuaire d'articles
1. Introduction aux commandes
mv (move) est utilisé pour déplacer ou renommer des fichiers et des répertoires.
Si le fichier cible existe déjà lors du déplacement d'un fichier, le contenu du fichier cible sera écrasé.
La commande mv peut être utilisée pour déplacer des fichiers source vers un fichier de destination ou déplacer un groupe de fichiers vers un répertoire de destination. Il y a deux résultats différents lorsque le fichier source est déplacé vers le fichier cible :
(1) Si le fichier cible est un répertoire, le fichier d'origine sera déplacé vers ce répertoire et le nom du fichier restera inchangé. Lorsque le fichier cible est un répertoire, il peut y avoir plusieurs fichiers source ou paramètres de répertoire, et tous les fichiers source seront déplacés vers le répertoire cible. Tous les fichiers déplacés vers ce répertoire conserveront leurs noms de fichiers précédents.
(2) Si le fichier cible n'est pas un répertoire, le nom du fichier d'origine (il ne peut y en avoir qu'un) sera remplacé par le nom du fichier cible et le fichier existant portant le même nom sera écrasé. Si le fichier d'origine et le fichier cible se trouvent dans le même répertoire, la fonction de mv est de modifier le nom du fichier.
Avis:
(1) Les résultats de mv et cp sont différents. mv est comme des fichiers "en mouvement", et le nombre de fichiers n'augmente pas. Pendant que cp copie des fichiers, le nombre de fichiers augmente.
(2) Bien que son manuel ne le précise pas, l'utilisation de mv pour déplacer un répertoire échouera si le répertoire cible n'est pas vide. Si cela est sûr, vous pouvez utiliser la commande cp à la place.
cp -rf yourdir dstdir && rm -r yourdir
2. Format de commande
mv [options] source dest
mv [options] source... directory
Description des options
--backup=[=CONTROL]
若需覆盖文件,则覆盖前先行备份
-b
当文件存在时,覆盖前,为其创建一个备份。功能类似于--backup,但是不需要接收参数
-f, --force
若目标文件或目录已存在,则直接覆盖不进行提示。为缺省行为。
-i, --interactive
交互式操作,若目标文件或目录已存在,则询问用户是否覆盖。输入y表示同意;输入n表示不同意
-n, --no-clobber
不覆盖现有的同名文件或目录;如果同时指定多个以下选项,-i, -f, -n,则只有最后一个生效
--strip-trailing-slashes
删除参数 SOURCE 中所有目录末端的斜杠
-S, --suffix=SUFFIX
为备份文件指定后缀,而不使用默认的后缀
-t, --target-directory=DIRECTORY
指定源文件要移动到的目标目录
-T, --no-target-directory
将 DEST 视为普通文件
-u, --update
当源文件比目标文件新或者目标文件不存在时,才执行移动操作
-v, --verbose
冗余模式执行 mv,解释 mv 命令的执行过程
Paramètres couramment utilisés :
- -i : Si un fichier du même nom existe déjà dans le répertoire spécifié, demandez d'abord s'il faut écraser l'ancien fichier ;
- -f : ne donne aucune instruction lorsque l'opération mv veut écraser un fichier cible existant ;
Paramètres des paramètres mv et résultats d'exécution
Format de commande | résultat de l'opération |
---|---|
mv nom de fichier nom de fichier | Remplacez le nom du fichier source par le nom du fichier cible |
nom de fichier mv nom de répertoire | Déplacer les fichiers vers le répertoire cible |
nom du répertoire mv nom du répertoire | Si le répertoire cible existe déjà, déplacez le répertoire source vers le répertoire cible ; si le répertoire cible n'existe pas, renommez-le. |
nom du répertoire mv nom du fichier | Erreur |
3. Exemples courants
(1) Renommez le fichier aaa en bbb.
mv aaa bbb
(2) Déplacer + renommer
mv /home/test/a.txt /home/demo/c.txt
(3) Déplacez tous les fichiers du répertoire /home/test vers le répertoire actuel (indiqué par .).
mv /home/test/* .
(4) Placez le répertoire info dans le répertoire des journaux. Notez que si le répertoire des journaux n'existe pas, cette commande renommera les informations en journaux.
mv info/ logs
(5) Opération interactive, si le fichier ou le répertoire cible existe déjà, demandez à l'utilisateur s'il doit l'écraser.
mv -i test1 test2