Quiero eliminar cualquier archivo que se parezca wordpress-891.sql
del directorio actual (no dentro de los subdirectorios).
¿ rm wordpress-*.sql
Funcionará o también eliminará las coincidencias de los subdirectorios?
command-line
bash
HorusCoding
fuente
fuente
rm
no 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
-r
indicador para eliminar un directorio.Por lo tanto, es seguro hacerlo si está seguro de que desea eliminar esos archivos.
También puedes hacer
rm
interactivosluego 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-d
switch conls
para 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-*.sql
echo rm file*
. Especialmente busca nombres de archivos hostiles como-rf
rm ./*
orm -- *
.xargs -0
@DavidFoersterls foo*
y usted tiene un directorio llamadofoobar
, también se obtiene una lista de los contenidos de ese directorio, tan clarols
que no es realmente la mejor manera a lo que elrm
golpearáNo,
rm
no 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-trash
mención aprendí algo que hoy apenas lo uso ...Si desea buscar y eliminar todos los archivos coincidentes
wordpress-*.sql
, puede usarfind
comando. :)Por ejemplo, desea eliminar todos los archivos coincidentes con
wordpress-*.sql
undertest_dir
, haga lo siguiente.Cada vez que el
find
programa realmente encuentra un archivo coincidente, intenta ejecutar un comando después de la-exec
opció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
-maxdepth
opción.Tenga en cuenta que debe especificar la
-maxdepth
opció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