Quiero eliminar cualquier archivo que se parezca wordpress-891.sql del directorio actual (no dentro de los subdirectorios).
¿ rm wordpress-*.sqlFuncionará o también eliminará las coincidencias de los subdirectorios?
command-line
bash
HorusCoding
fuente
fuente

rmno hace la expansión del nombre de archivo ...rm "foo*"intentaría eliminar un archivo con un asterisco literal en el nombre.Respuestas:
No. El globbing normal
*no es recursivo y tampoco lo esrm.Si un nombre de directorio coincide, no se eliminará; necesita el
-rindicador para eliminar un directorio.Por lo tanto, es seguro hacerlo si está seguro de que desea eliminar esos archivos.
También puedes hacer
rminteractivosluego solicitará confirmación antes de eliminar cada archivo
fuente
Sí, hace el truco por usted y elimina todos los archivos con ese esquema en el directorio actual. Y NO, no elimina archivos dentro de los subdirectorios.
Cuando no esté seguro de lo que sucede cuando ejecuta un comando como:
entonces solo ejecútalo usando
ls:los archivos que ve en la salida son los que se eliminarán.
Cuando intenta obtener una lista como:,
foo*es mejor usar-dswitch conlspara evitar que se enumeren archivos dentro de un directorio llamadofoobar/etc.Este truco funciona para comandos que no se utilizan para hacer el trabajo de forma recursiva.
La otra cosa que puede hacer es escribir su entrada deseada, por ejemplo:
wordpress-*luego presione Ctrl+ Alt+ *, y ahora todas las coincidencias se escriben automáticamente frente a su comando.fuente
printf "%s\n" wordpress-*.sqlecho rm file*. Especialmente busca nombres de archivos hostiles como-rfrm ./*orm -- *.xargs -0@DavidFoersterls foo*y usted tiene un directorio llamadofoobar, también se obtiene una lista de los contenidos de ese directorio, tan clarolsque no es realmente la mejor manera a lo que elrmgolpearáNo,
rmno se repite a través de subdirectorios.Consulte Eliminar archivos coincidentes en todos los subdirectorios: SuperUser para conocer los métodos para eliminar archivos en subdirectorios.
Si alguna vez le preocupa eliminar accidentalmente algo importante, use
gvfs-trash(que envía archivos a la papelera) en lugar derm(que elimina archivos de forma permanente).fuente
gvfs-trashmención aprendí algo que hoy apenas lo uso ...Si desea buscar y eliminar todos los archivos coincidentes
wordpress-*.sql, puede usarfindcomando. :)Por ejemplo, desea eliminar todos los archivos coincidentes con
wordpress-*.sqlundertest_dir, haga lo siguiente.Cada vez que el
findprograma realmente encuentra un archivo coincidente, intenta ejecutar un comando después de la-execopción. En este casorm -f {}se ejecutará y{}se cambiará al nombre del archivo de coincidencia. P.ejTambién puede establecer la profundidad de los subdirectorios con la
-maxdepthopción.Tenga en cuenta que debe especificar la
-maxdepthopción antes que otras opciones. De lo contrario, puede obtener los resultados que realmente no desea ver.fuente
-maxdepth. Use en-exec rm -f {} +lugar de-exec \;, o mejor aún, solo-delete