Cosa significa?


9

Cosa ./significa?

Ad esempio: il comando seguente significa spostare i file dalla Gapache2cartella a sites-available:

root@ip-10-112-55-203:/etc/mds-1.2-beta4/sana/config/etc/Gapache2# mv ./ /etc/apache2/sites-available

In caso contrario, come dovrebbe essere modificato?

Ho provato a ottenere qualcosa da Ricerca Google. Ma ./viene ignorato dai motori di ricerca.

Risposte:


13

In Unix / Linux si .intende la directory corrente nel tuo caso /etc/mds-1.2-beta4/sana/config/etc/Gapache2. Ci sono anche molte scorciatoie come:

  • ..: directory principale ( /etc/mds-1.2-beta4/sana/config/etc/)
  • ~: cartella home

Quindi, per spostare tutte le cartelle e i file da /etc/mds-1.2-beta4/sana/config/etc/Gapache2a /etc/apache2/sites-available, il comando sarà così

mv ./* /etc/apache2/sites-available/

AGGIORNAMENTO: questo collegamento è una buona risorsa per i comandi UNIX di base


Per spostare anche i file nascosti, in realtà è necessaria un'espressione glob più sofisticata (o diverse impostazioni della shell). Vedi stackoverflow.com/questions/1586477/…
Andrea Corbellini,

(fingendo di essere un nuovo utente in questo commento) " ./indica la directory corrente" Qual è la differenza tra .e ./quindi? Ho pensato che .significasse solo la directory corrente.
gertvdijk,

@gertvdijk: aggiornata la risposta. :)
aneeshep,

3

Di .

In UNIX / Linux, .indica la directory corrente. Lo vedrai anche elencato nei lscomandi:

ls -al
total 40348
drwx------  20 root root     4096 Feb  2 23:05 .               <-- there!
drwxr-xr-x  24 root root     4096 Jan 31 20:07 ..
-rw-r--r--   1 root root      322 Dec 16 17:35 20-revert

Barre ./e collegamenti simbolici

Quando lo si aggiunge /ad esso, questo ha lo stesso significato di aggiungere /a qualsiasi altro nome di directory. Assicurerà solo che non stai operando su un file. In generale, questa non sarà una differenza nei comandi cpe mv, ma vedrai una differenza quando usi i collegamenti simbolici. Supponiamo che questa struttura:

.                                                                   
├── a                                                               
├── dir1
│   ├── b
│   └── c
├── dir2
│   └── d
└── symlink -> dir2

Quindi un elenco regolare mostrerà il link stesso

ls -l symlink
lrwxrwxrwx 1 gert gert 4 Feb  3 12:15 symlink -> dir2

ma aggiungendo la /farai scendere la lista e mostrarne il contenuto.

ls -l symlink/
total 0
-rw-rw-r-- 1 gert gert 0 Feb  3 12:15 d

Ciò significa che quando si utilizzano le operazioni, è consigliabile aggiungere il /riferimento se si fa riferimento al contenuto di esso o si desidera copiarlo / spostarsi in esso dereferenziando il collegamento, anziché sostituirlo.

Vedi anche: Trailing slash su collegamenti simbolici alle directory

Torna all'esempio

Nell'esempio della tua domanda, vuoi veramente spostare solo il contenuto della directory nell'altra. Quindi, come ha sottolineato Aneeshep , dovresti usare mv ./* destdir/. Questo è lo stesso mv * destdir/della shell (Bash) che si espande *dalla directory corrente per impostazione predefinita.

Quindi, lo eseguo in questo modo (nella directory dei sorgenti):

mv * /etc/apache2/sites-available/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.