Estoy buscando un directorio para una cadena particular (para ver todas las instancias de dónde está presente la cadena y en qué archivos). Sin embargo, quiero excluir un archivo en particular de la búsqueda.
Esto es lo que está sucediendo.
$echo "searchstring" > ./old_folder/useless_file
$echo "searchstring" > ./new_folder/good_file
$grep -r --exclude="old_folder/useless_file" searchstring *
./old_folder/useless_file:searchstring
./new_folder/good_file:searchstring
Aquí está la salida que quiero.
./new_folder/good_file:searchstring
--exclude="old_folder/useless_file"
a simplemente--exclude=useless_file
, ¿tiene el mismo problema? (Mi lectura de la página del manual sugiere que el patrón--exclude
debe ser solo el nombre base, sin incluir la ruta.)Respuestas:
La
--exclude
opción toma globos que coinciden con los nombres de archivo, no directorios o rutas completas:Entonces, podrías hacer:
O, para excluir todos los archivos en ese directorio:
fuente