Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Bash script: basename en ls  (gelezen 1887 keer)

Offline Nero

  • Lid
  • Steunpunt: Ja
Bash script: basename en ls
« Gepost op: 2015/08/19, 13:10:20 »
De opdracht basename -a $HOME geeft alle mappen en bestanden in $HOME weer, behalve de hidden, dwz deze welke met een . (punt) beginnen. Hoe krijg ik die er wel bij?

Zelfde probleem met ls. ls -a geeft alle bestanden weer, ook de verborgen items. ls -d */ geeft enkel de directories, zonder hun inhoud. Gecombineerd krijg ik echter de verborgen mappen niet.

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: Bash script: basename en ls
« Reactie #1 Gepost op: 2015/08/19, 13:58:38 »
Onduidelijk wat je wil doen. In de eerste paragraaf klopt er iets niet in wat je zegt. $HOME staat voor (bijvoorbeeld) /home/nero. "basename -a $HOME" levert dus enkel "nero" op.

Misschien kan je iets met find fabriceren:
find /home/nero -exec basename "{}" \;
levert alle namen op van de gezochte bestanden zonder pathname. Door de opties in te stellen, moet het mogelijk zijn alles te vinden wat je wil oplijsten.

Offline MauRice2

  • Lid
  • Steunpunt: Nee
Re: Bash script: basename en ls
« Reactie #2 Gepost op: 2015/08/19, 18:15:48 »
Nero,

Als je de betanden in en folder recursief wilt oplijsten vanwaar je in deze folder zit.
Neem een kijkje naar dit scriptje:
http://users.telenet.be/x86_64/Scripts/Filelist2
MvG,
MauRice
Registered Linux user: 473556

Offline Nero

  • Lid
  • Steunpunt: Ja
Re: Bash script: basename en ls
« Reactie #3 Gepost op: 2015/08/19, 18:46:48 »
Bedoeling was eigenlijk alle folders (niet recursief) in een for-loop te gebruiken. De folders worden wel weergegeven met ls -lA | grep "^d"

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: Bash script: basename en ls
« Reactie #4 Gepost op: 2015/08/19, 19:05:36 »
find . -type d -maxdepth 1 -exec basename "{}" \;

Offline Nero

  • Lid
  • Steunpunt: Ja
Re: Bash script: basename en ls
« Reactie #5 Gepost op: 2015/08/19, 19:49:04 »
Tnx, die geeft het gewenste resultaat.

Offline MauRice2

  • Lid
  • Steunpunt: Nee
Re: Bash script: basename en ls
« Reactie #6 Gepost op: 2015/08/19, 19:57:14 »
find . -type d -maxdepth 1 -exec basename "{}" \;

Je moet wel -type d & -maxdepth 1 omdraaien, anders heb je kans dat de waarschuwing die find geef, de loop verknalt.
Maw:
find . -maxdepth 1 -type d -exec basename "{}" \;
MvG,
MauRice
Registered Linux user: 473556

Offline Nero

  • Lid
  • Steunpunt: Ja
Re: Bash script: basename en ls
« Reactie #7 Gepost op: 2015/08/19, 20:20:35 »
Inderdaad, had ik ook reeds vast- en bijgesteld.