Sulla riga di comando di Linux, lavori con diversi tipi di file, ad esempio directory, collegamenti simbolici e cose del genere. A volte, il requisito è sapere di più sui singoli elementi in un percorso:che tipo di file è, chi ne è il proprietario e altro ancora. Per fortuna, c'è un'utilità della riga di comando Linux integrata, chiamata namei - che ti consente di recuperare queste informazioni.
In questo tutorial, discuteremo le basi di namei usando alcuni esempi di facile comprensione. Ma prima di iniziare, vale la pena ricordare che tutti gli esempi qui presenti sono stati testati su una macchina Ubuntu 18.04 LTS.
Comando Linux namei
Il comando namei in Linux segue un percorso finché non viene trovato un punto terminale. Di seguito è riportata la sua sintassi:
namei [options] pathname...
Ed ecco cosa dice la pagina man su questo strumento:
namei interprets its arguments as pathnames to any type of Unix file
(symlinks, files, directories, and so forth). namei then follows each
pathname until an endpoint is found (a file, a directory, a device
node, etc). If it finds a symbolic link, it shows the link, and starts
following it, indenting the output to show the context.
This program is useful for finding "too many levels of symbolic links"
problems.
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti una buona idea su come funziona il comando namei.
Q1. Come usare namei?
L'utilizzo di base è abbastanza semplice, tutto ciò che devi fare è eseguire 'namei' seguito da un percorso della riga di comando.
Ad esempio:
namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Ed ecco l'output prodotto da questo comando:
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
d /
d home
d himanshu
d Downloads
d HTF-review
d Nodejs-Docker
- 1.png
La pagina man dello strumento descrive in dettaglio come interpretare l'output.
For each line of output, namei uses the following characters to identify the file type found:
f: = the pathname currently being resolved
d = directory
l = symbolic link (both the link and its contents are output)
s = socket
b = block device
c = character device
p = FIFO (named pipe)
- = regular file
? = an error of some kind
Quindi puoi vedere che il comando namei ha scomposto tutti gli elementi nel percorso che gli abbiamo fornito, informandoci sul loro tipo.
Q2. Come allineare verticalmente l'output di namei?
Questo puoi farlo usando l'opzione della riga di comando -v. Ad esempio:
namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Ed ecco l'output:
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
d /
d home
d himanshu
d Downloads
d HTF-review
d Nodejs-Docker
- 1.png
Se confronti questo con l'output mostrato nella sezione precedente, vedrai che questa volta c'è un allineamento verticale.
T3. Come fare in modo che namei mostri le informazioni sul proprietario e sul gruppo?
Questo può essere fatto usando l'opzione della riga di comando -o. Ad esempio:
namei -o /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Ecco l'output:
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
d root root /
d root root home
d himanshu himanshu himanshu
d himanshu himanshu Downloads
d himanshu himanshu HTF-review
d himanshu himanshu Nodejs-Docker
- himanshu himanshu 1.png
In questo modo puoi vedere che le informazioni sulla proprietà per ogni file/directory vengono visualizzate nell'output.
Q4. Come fare in modo che namei usi il formato di output per elenchi lunghi?
Questo può essere fatto usando l'opzione della riga di comando -l.
namei -l /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Ecco l'output:
f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x himanshu himanshu himanshu
drwxr-xr-x himanshu himanshu Downloads
drwxr-xr-x himanshu himanshu HTF-review
drwxr-xr-x himanshu himanshu Nodejs-Docker
-rw-rw-r-- himanshu himanshu 1.png
Quindi puoi vedere che un comando ls come output viene prodotto dal comando namei.
Q5. Come funziona namei con i link simbolici?
Come già spiegato all'inizio, il comando namei segue di default un collegamento simbolico. Ad esempio, sul mio sistema, "link1" è un collegamento simbolico a un file "file1", quindi ho passato il percorso "link1" come input a namei nel modo seguente:
namei /home/himanshu/link1
Quindi è stato prodotto il seguente output:
f: /home/himanshu/link1
d /
d home
d himanshu
l link1 -> file1
- file1
Quindi puoi vedere che il comando namei ha mostrato chiaramente il tipo di file "file1". Tuttavia, se lo desideri, puoi forzare lo strumento a non seguire i collegamenti simbolici, cosa che puoi fare usando l'opzione -n della riga di comando.
namei -n /home/himanshu/link1
Ecco l'output in questo caso:
f: /home/himanshu/link1
d /
d home
d himanshu
l link1 -> file1
Quindi puoi vedere che lo strumento non ha seguito il collegamento simbolico in questo caso.
Conclusione
Il comando namei è particolarmente utile in caso di elementi di collegamento simbolici annidati nel percorso. Qui, in questo tutorial, abbiamo discusso la maggior parte delle opzioni della riga di comando offerte da questo strumento. Una volta che hai finito di esercitarti, vai alla pagina man dello strumento per saperne di più.