Gå till innehåll
Just nu i M3-nätverket

Lista mappar och alla underliggande dokument via Terminalen


alfabeta

Rekommendera Poster

Hej!

 

Hoppas att jag med detta inte skapar förvirring genom att skapa en ny tråd i onödan. Min fråga är: hur kan man m h a Terminalen skapa en lista över alla mappar och alla underliggande dokument (alltså även dokument i alla undermappar) i en mapp? Sådant går ju att göra i t ex TextWrangler och BBEdit men Terminalen är ju alltid på plats och kostar inget extra.

Länk till kommentar
Dela på andra webbplatser

Prova med:

cd /path/to/folder
ls -1
ls -R1        # Recursive

# vill du ha med all info:
ls -Ahl
ls -AhlR

# skriv direkt till en fil:
ls -AhlR > ./$(date +'%F')_fillista.txt
Länk till kommentar
Dela på andra webbplatser

Vidare på detta tema: jag använder, med hjälp av kommandot du, iEricF, hjälpte mig med, utvunna dokumentnamn för att skapa nya namn på dokumenten (har hittills bara kommit på att använda Excel och, förvisso, Terminalen, för detta, kanske finns det bättre lösningar). Nu vill jag kopiera, alltså helst inte flytta (fast man arbetar ju alltid med en kopia), alla de dokument som ligger i en mappstruktur till en enda mapp. Bökigt att göra för hand, dessutom med sina egna osäkerhetsfaktorer. Gissar att även detta går att göra, då kanske med ett kopieringskommando? Vad skulle hända om det visade sig att något/några dokumentnamn är identiska, något som ju lätt händer om vi talar om s k generiskt genererade dokumentnamn, t ex sådana man erhåller från digitalkameror?

Länk till kommentar
Dela på andra webbplatser

Vidare på detta tema: jag använder, med hjälp av kommandot du, iEricF, hjälpte mig med, utvunna dokumentnamn för att skapa nya namn på dokumenten (har hittills bara kommit på att använda Excel och, förvisso, Terminalen, för detta, kanske finns det bättre lösningar). Nu vill jag kopiera, alltså helst inte flytta (fast man arbetar ju alltid med en kopia), alla de dokument som ligger i en mappstruktur till en enda mapp. Bökigt att göra för hand, dessutom med sina egna osäkerhetsfaktorer. Gissar att även detta går att göra, då kanske med ett kopieringskommando? Vad skulle hända om det visade sig att något/några dokumentnamn är identiska, något som ju lätt händer om vi talar om s k generiskt genererade dokumentnamn, t ex sådana man erhåller från digitalkameror?

Att kopiera är inte så svårt, det är väl just det med konfliktnamn.... de ersätter ju gamla. Finns så man kan lägga in att den stannar och frågar (om den skall skriva över el inte), men då skulle man behöva göra ett lite skript istället som tar hand om den biten så det blir mer automatiserat. Enklast är nog om du ger den nya foldern ett datum, eller döper om den gamla och ger den nya det vanliga.

 

T ex:

# Folder att kopiera
/path/to/exempel

# Destination
/new/path/to/exempel

# Kopiera till folder med datum. 
cp -rv /path/to/exempel /new/path/to/exempel-$(date +'%F')

# Blir: exempel-2017-03-06/

- - -

# Alt 2, backa up och flytta den
# med samma namn
mv -v /new/path/to/exempel{,.$(date +'%F').bak}
cp -rv /path/to/exempel /new/path/to

# Blir:
# /new/path/to/
#     exempel.2017-03-06.bak/
#     exempel/

 

Men om du funderar på att göra ett skript av det, så någonting med find och while, kanske kan vara bra att avända - och sen göra all matchning, och ev namnbyten, kopiering och sånt i den loopen.

#!/usr/bin/env bash
find . -name "*.jpg" | while read _file; do
    cp -v "${_file}" /new/path/to/exempel
done

T ex, det skriptet skulle flytta alla jpg-bilder den hittar (rekursivt) till den nya - fast alla i samma folder då. Men mellan find och done kan du lägga in logiken då.

 

 

Fast allra enklast, om det nu är kamerabilder, är väl att man varteftersom man tömmer kameran och sorterar in - att man passar på att döpa om sina bilder i samma veva - så slipper man alla tusentals DCIM*****-namn som man aldrig hittar nåt bland ändå. :)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...