1 votos

archivos fantasma: ¿ahora los ves, ahora no?

Archivos fantasma, no sé cómo llamarlos.

Tengo un disco externo que el sistema se niega a hacer escribible. La mayoría de los archivos que contiene ya están en mi disco interno. Para ahorrar tiempo y espacio, hice una lista de los archivos que no están y escribí un script para crear los directorios y copiar los archivos. Incluí algunas impresiones de depuración en el script.

mkdir -p "~/tempdir/PATH" no da ningún mensaje de error.

echo "~/tempdir/PATH" muestra que la ruta es correcta

cp "DISK/PATH/FILE" "~/tempdir/PATH/FILE" dice que "DISK/PATH/FILE" no existe, todavía

wc "~/tempdir/PATH/FILE" muestra un tamaño razonable para el tipo de archivo. Pero inmediatamente después,

ls -la "~/tempdir/PATH/FILE" dice que no hay tal archivo o directorio y Finder está de acuerdo en que el nivel superior de PATH no está en tempdir

Esta incoherencia se repite para cada archivo de la lista. chmod -RN , xattr -rc y similares para asegurarse de que no era un problema de permisos (aunque no había mensajes de error de permisos).

No sabía cómo desactivar "oh-my-zsh" así que fui a bash y el script hizo lo que se esperaba.  Así que mi suposición es que "oh-my-zsh" ha puesto un alias a uno o más de los comandos para que se comporten de forma muy extraña.

¿CÓMO es posible en zsh+"oh-my-zsh" para cp para decir que la fuente no existe, sin embargo wc es capaz de leer el destino en un archivo que Finder dice que no existe? Y luego para ls ¿acordar que el destino no existe?

MacOS 12.5 / zsh con "oh-my-zsh"

En cuanto a lo siguiente, la partición de 5TB (disk8) aparece más tarde en la lista con su nombre. fsck y la Utilidad de Discos y Time Machine no tienen ningún problema con ella. Cualquier intento de eliminar archivos no necesarios en 3TB obtiene "sistema de archivos de sólo lectura". sudo mount -w falla tanto si el volumen está montado como si no. fsck y la Utilidad de Discos muestran errores que no están corregidos. enter image description here

ACTUALIZACIÓN: en bash, los errores que obtiene zsh+"oh-my-zsh" en todos los archivos no suceden en la mayoría de los archivos, ¡pero sí en el cinco o diez por ciento! (mismo script)

ACTUALIZACIÓN DOS: Aunque los mensajes de error no están ahí para más (no todos) de los archivos y rutas en bash, find dice que ninguno de los archivos está allí, ¡y sólo uno de los directorios del nivel inferior!

ACTUALIZACIÓN 3: Descubrí que el shell creó un directorio llamado "~" en lugar de expandirlo. Sabía que $ las variables se expandían dentro de las comillas dobles, pero no sabía que ~ no lo es. (Creo que esa incoherencia fue una mala elección de diseño, pero ahora estamos atascados con ella). Vine aquí a mencionarlo como solución y veo que ya está en un comentario. De todos modos, ahí es donde fueron a parar mis "archivos fantasma".

2voto

Barmar Puntos 128

~ no se expande dentro de las comillas. Así que saca esa parte de la ruta de las comillas. Cambia.

mkdir -p "~/tempdir/PATH"

a

mkdir -p ~/"tempdir/PATH"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X