cat, xzcat e path relativi non funzionanti

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

cat, xzcat e path relativi non funzionanti

Messaggio da conraid »

È da tanto tempo che ho notato questa cosa, ma mi dimentico sempre di chiedere. O di cercare su web.

In pratica se uso un link simbolico, dopo i path relativi non funzionano per cat e xzcat

Mi spiego.
Ho un link simbolico /usr/src/linux che punta ai sorgenti del kernel, che sono, in questo caso, in /usr/src/kernel/linux-4.4

Bene. Ecco il risultato

Codice: Seleziona tutto

root@blackstar:/usr/src# cd linux
root@blackstar:/usr/src/linux# xzcat ../patch-4.4.1.xz 
xzcat: ../patch-4.4.1.xz: File o directory non esistente
Stessa cosa per cat.

Se invece vado in un percorso senza link simbolici tutto ok. Per es.

Codice: Seleziona tutto

root@blackstar:/usr/src# cd kernel
root@blackstar:/usr/src/linux# xzcat ../patch-4.4.1.xz 
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb
index 3a4abfc44f5e..136ba17d2da0 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-usb
[...]
Naturalmente se uso il percorso assoluto va

Codice: Seleziona tutto

root@blackstar:/usr/src/linux# xzcat /usr/src/patch-4.4.1.xz
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb
index 3a4abfc44f5e..136ba17d2da0 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-usb
[...]
Secondo voi è un bug o è voluta questa cosa?

Avatar utente
brg
Linux 3.x
Linux 3.x
Messaggi: 515
Iscritto il: sab 12 mar 2011, 14:20
Slackware: 14.2
Kernel: 4.4.172
Desktop: KDE4
Località: Montecatini
Contatta:

Re: cat, xzcat e path relativi non funzionanti

Messaggio da brg »

Se ho capito il problema, la cosa è voluta. Considera i collegamenti simbolici come degli alias, in questo caso /usr/src/linux è in tutto e per tutto un alias di /usr/src/kernel/linux-4.4. La cosa che vuoi fare te dovrebbe essere consentita usando hard links, ma il loro uso per le directory è fortemente sconsigliato e tipicamente disabilitato in quanto può provocare seri problemi all'integrità del file-system.

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: cat, xzcat e path relativi non funzionanti

Messaggio da conraid »

Tra l'altro ho visto che non funzionano in pratica tutti i comandi

Codice: Seleziona tutto

conraid@blackstar:/usr/src/linux$ xzcat ../patch-4.4.1.xz      
cat: ../patch-4.4.1.xz: File o directory non esistente
conraid@blackstar:/usr/src/linux$ patch -i ../patch-4.4.1.xz 
patch: **** Can't open patch file ../patch-4.4.1.xz : No such file or directory
conraid@blackstar:/usr/src/linux$ ls -l ../patch-4.4.1.xz 
ls: impossibile accedere a ../patch-4.4.1.xz: File o directory non esistente
conraid@blackstar:/usr/src/linux$ file ../patch-4.4.1.xz  
../patch-4.4.1.xz: cannot open `../patch-4.4.1.xz' (No such file or directory)
quindi è una caratteristica del sistema.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6566
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: cat, xzcat e path relativi non funzionanti

Messaggio da targzeta »

Non torna. Cosa ti ritornano i comandi

Codice: Seleziona tutto

cd /usr/src/linux
ls ..
Anzi torna, tu sei in /usr/src/kernel/linux-4.4 mentre la patch è in /usr/src/, come puoi trovarla sotto '../'? Quando fai cd ti sposti di fatto nella directory di destinazione!

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: cat, xzcat e path relativi non funzionanti

Messaggio da conraid »

Hai ragione.
ls .. da il contenuto di /usr/src/kernel

Codice: Seleziona tutto

conraid@blackstar:/usr/src/linux$ ls ..
build  linux-4.3  linux-4.4  patches  stable
conraid@blackstar:/usr/src/linux$ pwd
/usr/src/linux
conraid@blackstar:/usr/src/linux$
ma come vedi pwd da /usr/src/linux

però infatti

Codice: Seleziona tutto

conraid@blackstar:/usr/src/linux$ xzcat ../../patch-4.4.1.xz 
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb
index 3a4abfc44f5e..136ba17d2da0 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-us
però se uso il TAB per completare il comando lo completa solo con ../patc... e non con ../../patch...

Insomma, non c'è uniformità di gestione della cosa tra i vari comandi.

Comunque ho capito, thanks.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6566
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: cat, xzcat e path relativi non funzionanti

Messaggio da targzeta »

Non ho capito la tua risposta Corrado. Comunque il tuo comando pwd è, probabilmente, quello builtin nella shell. Se dai /bin/pwd avrai il risultato corretto. Puoi anche usare 'pwd -P' per avere il path reale.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: cat, xzcat e path relativi non funzionanti

Messaggio da conraid »

targzeta ha scritto:Non ho capito la tua risposta Corrado.
Che il completamente automatico non tiene conto del path reale, ma mi hai risposto con l'altro esempio. Anche quello è della bash.

Ora cerco se si può configurare la bash con il path reale.

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: cat, xzcat e path relativi non funzionanti

Messaggio da conraid »

Allora, per i comandi builtin basta impostare "set -P" e dopo hanno comportamento con path reali.

Per l'autocompletamento non sono riuscito a trovare una impostazione. Leggendo in rete alcuni fanno script appositi, ma non ho ancora provato. Se avete suggerimenti sono ben accetti.

Rispondi