@Jarmund Creo que es seguro asumir algunos * nix, considerando que ambos comandos mencionados son comandos comunes en sistemas tipo Unix. En este sentido, creo que es seguro decir que la mayoría de los proyectiles funcionan igual. Por lo tanto, podemos deducir lo suficiente como para dar una respuesta útil a pesar de que la plataforma exacta no se establece explícitamente.
Otra trampa para mencionar. NUNCA debe ejecutar mvo cpcon " " datos no confiables. Esto se debe a que " " se expande y los archivos con nombres como "--verbose" obtienen argumentos de línea de comandos. Qué usar en su lugar:cp ./* anotherFolder
VasyaNovikov
Respuestas:
30
Supongo que bash expande el comodín y, por lo tanto, mueve cada carpeta a la última.
Por ejemplo:
$ ls
test1 test2 test3 test4
$ mv *
$ ls
test4
$ ls test4
test1 test2 test3
Aquí, mv *se expande mv test1 test2 test3 test4al mv [OPTION]... SOURCE... DIRECTORYformato correspondiente . Por lo tanto, cada carpeta se mueve a la última.
Esta. Por cierto, si desea usar *en un mv(o cp), eche un vistazo a su --target-directoryinterruptor. Se asegura de que no te muerdan cosas como esta.
un CVn
2
Según lo descrito por @ssssteffff, con mv *, el shell está haciendo una expansión comodín desde los archivos en el directorio actual. Sin embargo, el comportamiento del mvcomando depende de cuántos argumentos se *expanden. Si hay más de dos argumentos, el último argumento debe ser un directorio:
mv [OPTION]... SOURCE... DIRECTORY
Entonces,
Creé 5 archivos
$ touch 1 2 3 4 5
$ ls
1 2 3 4 5
$ mv *
mv: target ‘5’ is not a directory
$ ls
1 2 3 4 5
Ahora, si creo un directorio que viene como último parámetro para la expansión de comodines, entonces:
$ mkdir 6
$ mv *
$ ls
6
$ ls 6
1 2 3 4 5
Deberías verificar dos veces cuál fue el último argumento.
Si el último argumento fue un directorio, entonces sus datos tal vez estén seguros.
Si el número total de argumentos fue 2, y el último argumento fue un directorio, entonces sus datos tal vez estén seguros.
Si el número total de argumentos fue 2, y el último argumento fue un archivo, entonces el segundo archivo se ha ido con seguridad.
¿Estás seguro de que no viste el error algo como esto?
mv
ocp
con " " datos no confiables. Esto se debe a que " " se expande y los archivos con nombres como "--verbose" obtienen argumentos de línea de comandos. Qué usar en su lugar:cp ./* anotherFolder
Respuestas:
Supongo que bash expande el comodín y, por lo tanto, mueve cada carpeta a la última.
Por ejemplo:
Aquí,
mv *
se expandemv test1 test2 test3 test4
almv [OPTION]... SOURCE... DIRECTORY
formato correspondiente . Por lo tanto, cada carpeta se mueve a la última.fuente
*
en unmv
(ocp
), eche un vistazo a su--target-directory
interruptor. Se asegura de que no te muerdan cosas como esta.Según lo descrito por @ssssteffff, con
mv *
, el shell está haciendo una expansión comodín desde los archivos en el directorio actual. Sin embargo, el comportamiento delmv
comando depende de cuántos argumentos se*
expanden. Si hay más de dos argumentos, el último argumento debe ser un directorio:Entonces,
Creé 5 archivos
Ahora, si creo un directorio que viene como último parámetro para la expansión de comodines, entonces:
Deberías verificar dos veces cuál fue el último argumento.
¿Estás seguro de que no viste el error algo como esto?
fuente