GNU/Linux >> Znalost Linux >  >> Linux

Kopírovat prvních N souborů do jiného adresáře?

Tato otázka zde již obsahuje odpovědi :Uzavřeno před 9 lety.

Možný duplikát:
Jak přesunout 100 souborů ze složky obsahující tisíce?

Je možné zkopírovat pouze prvních 1000 souborů z jednoho adresáře do jiného?

Předem děkuji

Přijatá odpověď:

Následující zkopíruje prvních 1000 souborů nalezených v aktuálním adresáři do $destdir . Ačkoli skutečné soubory závisí na výstupu vráceném find .

$ find . -maxdepth 1 -type f |head -1000|xargs cp -t "$destdir"

Budete potřebovat GNU implementaci cp pro -t , find kompatibilní s GNU pro -maxdepth . Také si uvědomte, že předpokládá, že cesty k souborům neobsahují mezery, nový řádek, uvozovky ani zpětná lomítka (nebo neplatné znaky nebo jsou delší než 255 bajtů s některými xargs implementace).

UPRAVIT: Chcete-li zpracovávat názvy souborů s mezerami, novými řádky, uvozovkami atd., možná budete chtít použít řádky ukončené nulou (za předpokladu verze head který má -z možnost):

find . -maxdepth 1 -type f -print0 | head -z -n 1000 | xargs -0 -r -- cp -t "$destdir" --

Linux
  1. Najděte a zkopírujte soubory

  2. Najděte všechny nulabajtové soubory v adresáři a podadresářích

  3. Jak mohu rekurzivně kopírovat soubory podle přípony souboru a zachovat adresářovou strukturu?

  1. Jak extrahovat soubory Tar do konkrétního nebo jiného adresáře v Linuxu

  2. Jak zkopíruji strom adresářů, ale ne soubory v Linuxu?

  3. Jak kopírovat soubory *.txt rekurzivně do jiného cíle?

  1. Jak zjistit počet souborů v adresáři a podadresářích

  2. Přejmenujte všechny soubory a názvy adresářů na malá písmena v Linuxu

  3. Jak najít soubor v Linuxu ve všech adresářích rekurzivně