one - remove directory linux
¿Cómo evitar el mensaje de advertencia ''son el mismo archivo'' al usar cp en Linux? (2)
Estoy tratando de copiar ciertos archivos de un directorio a otro. Usando este comando
find "$HOME" -name ''*.txt'' -type f -print0 | xargs -0 cp -t $HOME/newdir
Recibo un mensaje de advertencia diciendo
cp: ''/home/me/newdir/logfile.txt'' y ''/home/me/newdir/logfile.txt'' son el mismo archivo
¿Cómo evitar este mensaje de advertencia?
El problema es que intentas copiar un archivo a sí mismo. Puede evitarlo excluyendo el directorio de destino de los resultados del comando de búsqueda de esta manera:
find "$HOME" -name ''*.txt'' -type f -not -path "$HOME/newdir/*" -print0 | xargs -0 cp -t "$HOME/newdir"
Hazlo único en el proceso. Pero esto requiere clasificación
find "$HOME" -name ''*.txt'' -type f -print0 | sort -zu | xargs -0 cp -t "$HOME/newdir"
O si no se trata de los archivos generados, intente usar la opción -u
de cp
.
find "$HOME" -name ''*.txt'' -type f -print0 | xargs -0 cp -ut "$HOME/newdir"
-u copy only when the SOURCE file is newer than the destination file or when the destination file is missing