Come cambiare il nome di una directory?

0

La mia home directory non era dove doveva essere. Sono stato in grado di correggere il percorso della directory. Quindi necessario per correggere il permesso della home directory con

$ cd /Users/
$ sudo chown -R hook1:staff /Users/hook1
chown: /Users/hook1: no file or directory
$ ls -F
Shared/    chris/      hook1???/

La directory home appare in modo errato come hook1???/ non hook1/ C'è una ragione per questo?

    
posta Chris 17.07.2015 - 16:42
fonte

1 risposta

1

Se ciò che hai pubblicato era letteralmente il nome della directory, allora dovrebbe funzionare:

cd /Users
mv hook1\?\?\? hook1

Il problema, come sottolinea fd0, è che hai caratteri invisibili / non stampabili nel nome della tua directory. Utilizzare comandi di shell di base non distruttivi per isolare il nome della directory utilizzando i caratteri jolly, quindi rinominarlo. Ad esempio, prova questo:

cd /Users
ls -ld h*

Ciò dovrebbe comportare esattamente una directory elencata. In caso contrario, continua ad aggiungere lettere prima di * per creare una maschera jolly che produce esattamente un risultato:

ls -ld ho*     # produces 3 results
ls -ld hoo*    # produces 1 result

Se arrivi a un punto in cui passi da più di un risultato a zero risultati, allora sei incappato in un altro personaggio invisibile. Esegui il backup di una lettera, aggiungi un punto interrogativo, quindi aggiungi nuovamente la lettera.

ls -ld ho*     # produces 3 results
ls -ld hoo*    # produces 0 results
ls -ld ho?o*   # produces 1 result

Se hai ancora problemi, gioca con più * e ? finché non hai qualcosa che produce esattamente un risultato:

ls -ld ho*     # produces 3 results
ls -ld hoo*    # produces 0 results
ls -ld ho?o*   # produces 0 results
ls -ld ho*o*   # produces 1 result

Una volta ottenuto ciò, utilizzalo nel comando mv :

mv ho*o* hook1

Se non funziona, per favore pubblica i risultati di te ls -ld esperimenti.

    
risposta data 18.07.2015 - 02:21
fonte

Leggi altre domande sui tag