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--excludedebe ser solo el nombre base, sin incluir la ruta.)Respuestas:
La
--excludeopció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