GNU/Linux >> Linux Esercitazione >  >> Linux

Come reindirizzare i risultati di "trova" a mv in Linux

xargs è comunemente usato per questo, e mv su Linux ha un -t opzione per facilitarlo.

find ./ -name '*article*' | xargs mv -t ../backup

Se il tuo find supporta -exec ... \+ potresti fare in modo equivalente

find ./ -name '*article*' -exec mv -t ../backup {}  \+

Il -t opzione è un'estensione GNU, quindi non è portabile su sistemi che non hanno GNU coreutils (sebbene ogni vero Linux che ho visto lo abbia, con la possibile eccezione di Busybox). Per la completa portabilità POSIX, è ovviamente possibile creare il proprio sostituto, magari qualcosa del genere

find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+

dove abusiamo spudoratamente del fatto conveniente che il primo argomento dopo sh -c 'commands' finisce come parametro "script name" in $0 in modo che non abbiamo nemmeno bisogno di shift esso.

Probabilmente vedi anche https://mywiki.wooledge.org/BashFAQ/020


find ./ -name '*article*' -exec mv {}  ../backup  \;

O

find ./ -name '*article*' | xargs -I '{}' mv {} ../backup

Linux
  1. Come scoprire se il disco è SSD o HDD in Linux

  2. Linux:come trovare il driver di dispositivo utilizzato per un dispositivo?

  3. Come trovare tutti i file sparsi in Linux

  4. È possibile reindirizzare i risultati di FIND a un comando COPY CP?

  5. Come trovare l'indirizzo IP del gateway in Linux

Come trovare il tipo di filesystem montato in Linux

Come trovare l'indirizzo IP in Linux

Come trovare il nome host in Linux

Come trovare la dimensione totale di una directory in Linux

Come trovare file con il comando fd in Linux

Come trovare l'elenco dei repository installati in Linux