Puede hacer esto, para proporcionar tar
una lista de todos los archivos dentro, protTests
excepto aquellos que son enlaces simbólicos:
find protTests -maxdepth 1 -mindepth 1 -not -type l -print0 |
tar --null --files-from - -cvf protTests.tar
Por cierto, su comando existente:
tar -cvf protTests.tar protTests/*
no archivará todos los archivos protTests
, solo archivará aquellos cuyos nombres no comiencen .
(aquellos que no están ocultos). El *
operador global omite archivos cuyos nombres comienzan .
por diseño. El comando también tiene el problema de que si protTests
tiene muchos archivos (más de muchos miles), protTests/*
puede expandirse a demasiados argumentos para caber en la línea de comando.
Un comando más simple como este no tendría ninguno de esos problemas:
tar -cvf protTests.tar protTests
--files-from
, esta es una opción de gtar, por lo que de darles tal consejo, mejor mencionar que esto es específico de gtar. Find no tiene primario-not
, este es otro GNUism no portátil. En general, es una mala idea usar una llamada de búsqueda separada. Esto puede dar problemas con los caracteres divertidos en el nombre del archivo y definitivamente da un bajo rendimiento ya que tanto find como tar necesitan escanear el sistema de archivos. Estos problemas no se aplican a programas como star que usan libfind y por lo tanto tienen incorporado el código de búsqueda.