Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

Auteur Topic: Bash script: basename en ls  (gelezen 1603 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.