Używanie nawiasów klamrowych (nawiasów klamrowych) do tworzenia struktury folderów za pomocą `mkdir -p`


16

Jak man mkdirstwierdza

   -p, --parents
          no error if existing, make parent directories as needed

Kiedy uruchomiłem to polecenie

mkdir -p work/{F1,F2,F3}/{temp1,temp2}

Tworzy strukturę katalogów jak ten workrodzic folderu wtedy F1, F2, F3foldery i dziecko temp1i temp2foldery dziecko poniżej trzeciego folderu nadrzędnego F1, F2, F3.

   work
     -F1
       -temp1
       -temp2
     -F2
       -temp1
       -temp2
     -F3
       -temp1
       -temp2

Teraz problem jest, że chcę stworzyć temp1, temp2foldery tylko pod F1nie pod F2a F3, ale jestem mylić, w jaki sposób można napisać polecenie, aby robić to, co chcę.


@Caleb: przepraszam, nie wiedziałem, że oboje edytujemy w tym samym czasie, wygląda na to, że scalanie wersji nie jest realizowane przez SE: - /
Stéphane Gimenez

@Stephane: Bez obaw. Dokonałem wielu zmian i dość rzadko zdarza się, że dwie główne zmiany są tak blokowane. Dziękujemy za pomoc!
Caleb

Odpowiedzi:



2

Bardzo dobry opis rozszerzenia nawiasu (z przykładami) można znaleźć w podrozdziale Brace Expansionpodręcznika bash ( man bashnaciśnij, /aby rozpocząć wyszukiwanie i wyszukiwanie Brace Expansion).


Dziękuję, twoja odpowiedź zaprowadziła mnie do tego wspaniałego przewodnika! Musiałem tylko wiedzieć, że nazywa się to „Brace Expansion”, więc wiedziałem, co google. linuxcommand.org/lc3_lts0080.php Fragment: „Być może najdziwniejsze rozszerzenie nazywa się rozszerzaniem nawiasów klamrowych. Za jego pomocą możesz tworzyć wiele ciągów tekstowych ze wzoru zawierającego nawiasy klamrowe. Oto przykład: [me@linuxbox me]$ echo Front-{A,B,C}-Back Front-A-Back Front-B-Back Front-C-Back
Rock Lee

0
mkdir -p work/F{1..3} work/F1/temp{1,2}

To najpierw tworzy worki trzy podkatalogi przed utworzeniem katalogów niższego poziomu work/F1. Jest łatwy do odczytania i zrozumienia.

Lub, jeśli absolutnie potrzebujesz połączyć wszystko w jedno wyrażenie potwora (absolutnie nie ma takiej potrzeby, ponieważ trudno jest je przeczytać i utrzymać):

mkdir -p work/F{1/temp{1,2},2,3}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.