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.star
es una buena alternativa y la he votado por esa razón. También estoy de acuerdo con la objeción de los "personajes divertidos", pero dado que GNUtar
no tiene una-0
opción, es una compensación. No estoy de acuerdo con la objeción de rendimiento, eso realmente no tiene consecuencias en esta situación.tar
comobsdtar
have--files-from
y--null
que elimina el problema con los personajes divertidos (si se combina confind
's-print0
o-exec printf '%s\0' {} +
). Pero aquí, probablemente quieras agregar la--no-recursion
opción. Algunaspax
implementaciones también tienen una-0
opción.tar
. Por favor tómalo para chatear . Ya es demasiado tiempo y se lee como una guerra religiosa. A menos que el OP suene en este punto, no creo que importe qué versión detar
esté en uso. Ni siquiera sabemos qué tipo de Unix están usando.