Supposons que j'ai un dossier contenant certains fichiers et certains dossiers (les fichiers peuvent être de tout type). Et je veux déplacer / copier certains de ces fichiers et dossiers à l'aide de la commande mv
/ cp
. Existe-t-il un moyen, tel que je pourrais en sélectionner certains au hasard, tout comme nous faisons la sélection à l'aide de la touche Ctrl, et déplaçons / copions à l'aide du terminal? Je ne peux utiliser ni caractère générique, ni l'expression régulière, car je souhaite sélectionner des fichiers de différents types, et leurs noms ont peu de similitudes.
command-line
bash
cp
mv
MikhilMC
la source
la source
cp -t /dest/ file{1,2,3}
ou pour les plagescp -t /dest/ file{1..3}
. Il fonctionne également pour les arguments et les combinaisons non numériques, par exemple lescp -t /dest/ f{ile,ly}.{csv,txt}
exécutionscp -t /dest/ file.txt file.csv fly.txt fly.csv
. Soyez prudent avec l'écrasement des choses si la position est importante, mais je les trouve utiles.Réponses:
Si vous souhaitez déplacer ou copier tous les fichiers dans le même répertoire, vous pouvez utiliser l'
-t
option decp
oumv
, mais cela signifie que vous devez saisir / fournir chaque nom de fichier comme argument. Il fonctionne de la manière suivante, avec autant de fichiers que d'arguments que vous le souhaitez:ou
C'est assez laborieux, mais la saisie des noms de fichiers peut être facilitée en utilisant la complétion des onglets de Bash .
Alternativement, le script bash suivant trouvera tous les fichiers dans un répertoire, donné comme premier argument, et copiera les fichiers sélectionnés dans le répertoire de destination, donné comme second argument.
Il vérifie chaque fichier et vous demande si vous souhaitez copier ce fichier. À la fin de la sélection des fichiers, il affiche une liste des fichiers sélectionnés et vous demande si vous souhaitez les copier dans le répertoire de destination:
Soyez averti qu'il n'y a pas d'erreur dans ce script pour savoir si le répertoire de destination existe, ou que vous avez entré les bons arguments.
la source
Voici un script qui sélectionne un ensemble aléatoire de fichiers / répertoires à copier. Il peut traiter des noms de fichiers arbitraires, même ceux contenant des sauts de ligne et des espaces. Enregistrez le script sous
~/bin/randomCopy.sh
, rendez-le exécutable (chmod a+x ~/bin/randomCopy.sh
) puis exécutez-le, en lui donnant le répertoire source comme premier argument, le répertoire cible comme deuxième et le nombre de fichiers / répertoires (le script ne fait pas de différence entre les fichiers et les répertoires, comme vous l’avez demandé) à copier. Par exemple, pour copier 5 fichiers ou répertoires aléatoires de/foo
vers/bar
:Le scénario:
Notez que cela écrasera les fichiers existants s'il en existe avec le même nom de fichier dans le répertoire cible.
la source
Essayez peut-être d'utiliser quelque chose comme Midnight Commander ? Il s'agit d'une application console qui fournit des fonctionnalités similaires au gestionnaire de fichiers graphique Nautilus.
la source
Récemment, j'ai trouvé une solution efficace à ce problème en utilisant xargs.
Tapez ensuite
Ctrl + C
. Cela fonctionnera à coup sûr. Je l'ai testé. Par cette méthode, nous pouvons sélectionner des fichiers tout comme en utilisant leCtrl
bouton en mode graphique, et copier / déplacer / supprimer.la source