Angenommen, ich habe einen Ordner mit einigen Dateien und einigen Ordnern (Dateien können von jedem Typ sein). Und ich möchte einige dieser Dateien und Ordner mit dem Befehl mv
/ verschieben / kopieren cp
. Gibt es eine Möglichkeit, einige davon zufällig auszuwählen, genau wie wir sie mit der Strg-Taste auswählen und mit dem Terminal verschieben / kopieren? Ich kann weder Platzhalter noch den regulären Ausdruck verwenden, da ich Dateien unterschiedlichen Typs auswählen möchte und deren Namen nur geringe Ähnlichkeiten aufweisen.
command-line
bash
cp
mv
MikhilMC
quelle
quelle
cp -t /dest/ file{1,2,3}
oder für Bereiche verwendencp -t /dest/ file{1..3}
. Es funktioniert auch für nicht numerische Argumente und Kombinationen, z . B. fürcp -t /dest/ f{ile,ly}.{csv,txt}
Ausführungencp -t /dest/ file.txt file.csv fly.txt fly.csv
. Seien Sie vorsichtig beim Überschreiben von Dingen, wenn die Position wichtig ist, aber ich finde sie nützlich.Antworten:
Wenn Sie alle Dateien in dasselbe Verzeichnis verschieben oder kopieren möchten, können Sie die
-t
Optioncp
oder verwendenmv
. Dies bedeutet jedoch, dass Sie jeden Dateinamen als Argument eingeben / angeben müssen. Es funktioniert folgendermaßen mit so vielen Dateien wie Argumenten, wie Sie möchten:oder
Dies ist ziemlich mühsam, aber das Eingeben der Dateinamen kann durch die Vervollständigung der Registerkarte von Bash vereinfacht werden .
Alternativ findet das folgende Bash-Skript alle Dateien in einem Verzeichnis, das als erstes Argument angegeben wurde, und kopiert die ausgewählten Dateien in das Zielverzeichnis, das als zweites Argument angegeben wird.
Es überprüft jede Datei und fragt, ob Sie diese Datei kopieren möchten. Am Ende der Dateiauswahl wird eine Liste der ausgewählten Dateien angezeigt und Sie werden gefragt, ob Sie sie in das Zielverzeichnis kopieren möchten:
Seien Sie gewarnt, dass in diesem Skript keine Fehlerprüfung erfolgt, ob das Zielverzeichnis vorhanden ist oder ob Sie die richtigen Argumente eingegeben haben.
quelle
Hier ist ein Skript, das einen zufälligen Satz von Dateien / Verzeichnissen auswählt, die kopiert werden sollen. Es kann mit beliebigen Dateinamen umgehen, auch mit Zeilenumbrüchen und Leerzeichen. Speichern Sie das Skript unter
~/bin/randomCopy.sh
, machen Sie es ausführbar (chmod a+x ~/bin/randomCopy.sh
) und führen Sie es dann aus. Geben Sie dabei das Quellverzeichnis als erstes Argument, das Zielverzeichnis als zweites und die Anzahl der Dateien / Verzeichnisse an (das Skript unterscheidet nicht zwischen Dateien und Verzeichnissen). wie von Ihnen angefordert) kopiert werden. So kopieren Sie beispielsweise 5 zufällige Dateien oder Verzeichnisse von/foo
nach/bar
:Das Skript:
Beachten Sie, dass dadurch vorhandene Dateien überschrieben werden, wenn im Zielverzeichnis Dateien mit demselben Dateinamen vorhanden sind.
quelle
Vielleicht versuchen Sie es mit so etwas wie Midnight Commander ? Es ist eine Konsolenanwendung, die ähnliche Funktionen wie der grafische Nautilus-Dateimanager bietet.
quelle
Kürzlich habe ich mit xargs eine effektive Lösung für dieses Problem gefunden.
Geben Sie dann ein
Ctrl + C
. Dies wird sicher funktionieren. Ich habe es getestet. Mit dieser Methode können wir Dateien wie mit derCtrl
Schaltfläche im Grafikmodus auswählen und kopieren / verschieben / entfernen.quelle