7 votos

¿Cómo fijar error alias?

Tengo dos discos duros externos: la Externa y la Copia de seguridad. Externo había muchos alias en el que se señalaban otros archivos en el mismo disco. Copia de seguridad se utiliza para la copia de seguridad Externa.

Externo fallado, y ahora uso la Copia de seguridad, que desde entonces he cambiado el nombre a la Externa. Por desgracia, todos los alias de ahora apuntan a /Volumes/Backup/… y por lo tanto ya no funcionan.

Yo no quiero tener que arreglar o volver a ellos de uno en uno.

Hay una manera de solucionar todos los alias para que apunten a /Volumes/External/… en lugar de /Volumes/Backup/…?

3voto

Scott Saad Puntos 247

Aquí está mi intento de resolver este problema con Applescript. El siguiente applescript va a tener seleccionados los alias en el Buscador y probar y volver a vincular a la nueva ruta de la sustitución de Backup con External en la ruta de acceso POSIX.

Esperamos que sea sencillo. Usted probablemente podría hacer es recursiva para la búsqueda de alias en las carpetas seleccionadas, pero que más trabajo del que puedo hacer ... y luego está el problema de tratar con los alias a las carpetas. Las cosas podrían ser desordenado. ;-)

Espero que ayude.

tell application "Finder"
    set these_items to the selection
end tell

repeat with i from 1 to the count of these_items
    set this_item to (item i of these_items) as alias
    set this_info to info for this_item

    if class of this_item is alias then
        tell application "Finder"
            set original_file to original item of this_item
            set this_alias_file_name to displayed name of this_item
            set container_folder to container of this_item

            set the_path to the POSIX path of (original_file as alias)
            set new_path to my replaceText("/Backup/", "/External/", the_path)

            move this_item to trash
            try
                make new alias file at container_folder to (POSIX file new_path) with properties {name:this_alias_file_name}
            on error errMsg number errorNumber
                if errorNumber is -10000 then -- new original file not found, try relinking to old
                    try
                        make new alias file at container_folder to (POSIX file the_path) with properties {name:this_alias_file_name}
                    on error errMsg number errorNumber
                        if errorNumber is -10000 then -- old original not found. link's dead Jim
                            display dialog "The original file for alias " & this_alias_file_name & " was not found."
                        else
                            display dialog "An unknown error occurred:  " & errorNumber as text
                        end if
                    end try
                else
                    display dialog "An unknown error occurred:  " & errorNumber as text
                end if
            end try
        end tell
    end if
end repeat

on replaceText(find, replace, subject)
    set prevTIDs to text item delimiters of AppleScript
    set text item delimiters of AppleScript to find
    set subject to text items of subject

    set text item delimiters of AppleScript to replace
    set subject to "" & subject
    set text item delimiters of AppleScript to prevTIDs

    return subject
end replaceText

2voto

Shawn Puntos 8120

Nombre del disco de Copia de seguridad? En serio, creo que sería la manera más rápida de resolver el problema. O usted podría escribir un script de shell que se encuentra de forma recursiva todos los aliase para señalar la "Copia de seguridad" de volumen y recrear a punto para el nuevo nombre...

editar

Echa un vistazo http://sveinbjorn.org/osxutils_docs, mkalias en particular.

1voto

New Alexandria Puntos 140

Recientemente he tenido que resolver el mismo problema, y escribió este código ruby para solucionar todos los alias de forma recursiva.

Voy a pegar aquí:

#!/usr/bin/ruby

# these are the folders containing all your images
if ARGV.size == 2
  dir_base     = ARGV[0]
  alias_folder = ARGV[1]
else
  puts "usage $0 dir_with_all_files sub_dir_containing_broken_aliases"
  puts "  or pass -d to use defaults:  ~/img  background"
  if ARGV[0] && ARGV[0] == '-d'
    dir_base     = File.expand_path '~/img'
    alias_folder = 'background'
  end
end

# list of all alias file paths, dirs excluded
alist = Dir.glob("#{dir_base}/#{alias_folder}/**/*").
            select{|w| w.scan('.').any? }

# a list of all file paths, alias fodler contents excluded
flist = Dir.glob("#{dir_base}/**/*").
            reject{|w| w.scan("#{dir_base}/#{alias_folder}").any? }

# forcably create new aliases by overwriting old files
alist.each do |f| 
  flist.each do |w| 
    `ln -fs #{w.gsub(' ','\ ')} #{f.gsub(' ','\ ')}` if w.split('/').last == f.split('/').last
    puts "linked #{w.gsub(' ','\ ')}  to  #{f.gsub(' ','\ ')}"
  end
end

0voto

user113215 Puntos 106

Su problema no es con el nombre "Copia de seguridad". Mismo me pasa a mí con "Comparar Archivos" en el menú contextual (creo que ese es el problema) y, ciertamente, con los archivos abiertos desde DreamWeaver. Ha habido algún cambio o corrección en Apple OS, ya DW intenta abrir el mismo archivo en Chrome, sin necesidad de "Volumen" antes del nombre de la partición, y el mismo archivo abierto en Chrome revela "Volumen", que funciona.

Así Adobe o Apple hizo un cambio, o hizo una revisión sobre la forma en que/punto de llamar a una partición distinta de la disco de inicio en la misma unidad.

Así, en el OP caso, el nombre de la unidad de copia de seguridad. El problema es el alias de tener "Volumen", agregó. Creo que en algún momento el disco de inicio estaba destinado a NO incluir "Volúmenes" y luego se fija para el Finder y otros lugares obvios pero que no llega a los alias todavía.

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