Załóżmy, że mam folder zawierający niektóre pliki i niektóre foldery (pliki mogą być dowolnego typu). I chcę przenieść / skopiować niektóre z tych plików i folderów za pomocą mv
/ cp
command. Czy jest jakiś sposób, żebym mógł wybrać niektóre z nich losowo, podobnie jak dokonujemy wyboru za pomocą klawisza Ctrl i wykonujemy przenoszenie / kopiowanie za pomocą terminala? Nie mogę używać symboli wieloznacznych ani wyrażeń regularnych, ponieważ chcę wybierać pliki różnych typów, a ich nazwy mają niewielkie podobieństwa.
command-line
bash
cp
mv
MikhilMC
źródło
źródło
cp -t /dest/ file{1,2,3}
lub dla zakresówcp -t /dest/ file{1..3}
. Działa również w przypadku nieliczbowych argumentów i kombinacji, np .cp -t /dest/ f{ile,ly}.{csv,txt}
Wykonujecp -t /dest/ file.txt file.csv fly.txt fly.csv
. Uważaj na nadpisywanie rzeczy, jeśli pozycja jest ważna, ale uważam je za przydatne.Odpowiedzi:
Jeśli chcesz przenieść lub skopiować wszystkie pliki do tego samego katalogu, możesz użyć
-t
opcjicp
lubmv
, ale oznacza to, że musisz wpisać / podać każdą nazwę pliku jako argument. Działa w następujący sposób, z dowolną liczbą plików i argumentów:lub
Jest to dość pracochłonne, ale wpisywanie nazw plików można ułatwić, korzystając z uzupełniania tabulacji przez Bash .
Alternatywnie poniższy skrypt bash znajdzie wszystkie pliki w katalogu podanym jako pierwszy argument i skopiuje wybrane pliki do katalogu docelowego podanego jako drugi argument.
Sprawdza każdy plik i pyta, czy chcesz go skopiować. Na końcu wyboru pliku wyświetla listę wybranych plików i pyta, czy chcesz je skopiować do katalogu docelowego:
Ostrzegamy, że w tym skrypcie nie ma błędów sprawdzania, czy istnieje katalog docelowy lub czy wprowadzono poprawne argumenty.
źródło
Oto skrypt, który wybiera losowy zestaw plików / katalogów do skopiowania. Może obsługiwać dowolne nazwy plików, nawet te zawierające znaki nowej linii i spacje. Zapisz skrypt jako
~/bin/randomCopy.sh
, ustaw go jako wykonywalny (chmod a+x ~/bin/randomCopy.sh
), a następnie uruchom go, podając katalog źródłowy jako pierwszy argument, katalog docelowy jako drugi i liczbę plików / katalogów (skrypt nie rozróżnia plików i katalogów, zgodnie z prośbą) do skopiowania. Na przykład, aby skopiować 5 losowych plików lub katalogów z/foo
do/bar
:Scenariusz:
Pamiętaj, że spowoduje to zastąpienie istniejących plików, jeśli w katalogu docelowym istnieją pliki o tej samej nazwie.
źródło
Może spróbuj użyć czegoś takiego jak Midnight Commander ? Jest to aplikacja konsolowa, która zapewnia podobne funkcje do graficznego menedżera plików Nautilus.
źródło
Niedawno znalazłem skuteczne rozwiązanie tego problemu za pomocą xargs.
Następnie wpisz
Ctrl + C
. To na pewno zadziała. Przetestowałem to. Za pomocą tej metody możemy wybierać pliki tak jak za pomocąCtrl
przycisku w trybie graficznym i kopiować / przenosić / usuwać.źródło