Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

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

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

Offline Nero

  • Lid
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
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.

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
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
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
Re: Bash script: basename en ls
« Reactie #5 Gepost op: 2015/08/19, 19:49:04 »
Tnx, die geeft het gewenste resultaat.

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
Re: Bash script: basename en ls
« Reactie #7 Gepost op: 2015/08/19, 20:20:35 »
Inderdaad, had ik ook reeds vast- en bijgesteld.