Существует плагин compiz, который может обрабатывать размещение окон. Называется «место». Вы можете узнать больше об этом здесь и как его настроить.
mkdir принимает несколько аргументов, просто запустите
mkdir dir_1 dir_2
mkdir принимает несколько аргументов, просто запустите
mkdir dir_1 dir_2
Это очень просто, позволяет создать структуру каталогов, такую как:
Websites/
static/
cs
js
templates/
html
Вы можете сделать это в одной команде следующим образом:
mkdir -p Website/{static/{cs,js},templates/html}
Be осторожно, чтобы не вводить пробелы
Вы можете использовать списки для создания каталогов, и это может стать довольно диким.
Некоторые примеры, чтобы заставить людей задуматься об этом:
mkdir sa{1..50}
mkdir -p sa{1..50}/sax{1..50}
mkdir {a-z}12345
mkdir {1,2,3}
mkdir test{01..10}
mkdir -p `date '+%y%m%d'`/{1,2,3}
mkdir -p $USER/{1,2,3}
50 каталогов от sa1 до sa50 но каждая из каталогов будет содержать 50 раз sax1 через sax50 (-p создаст родительские каталоги, если их не существует). 26 каталогов из списка с разделителями-запятыми от a12345 до z12345 делают dirs 1, 2 и 3. 10 каталогов с test01 до test10. то же, что и 4, но с текущей датой в качестве каталога и 1,2,3 в нем. то же, что и 4, но с текущим пользователем в качестве каталога и 1,2,3 в нем. Итак, если я правильно понял и вы хотите создать некоторые каталоги, а внутри них - новые каталоги, тогда вы можете сделать это:
mkdir -p sa{1..10}/{1,2,3}
и получить sa1, sa2, ..., sa10 и внутри каждый из них 1, 2 и 3.
Что-то вроде этого? (спасибо muru для наконечника printf)
printf '%s' 'foo,bar,baz' | xargs -d, mkdir
$ ls
$ printf '%s' 'foo,bar,baz' | xargs -d, mkdir
$ ls
bar baz foo
$
Вы можете превратить его в функцию для удобства использования:
function mkdir_cs {
printf '%s' "$1" | xargs -d, mkdir
}
$ ls
$ mkdir_cs 'foo,bar,baz'
$ ls
bar baz foo
$
Итак, вы хотите, чтобы список имен каталогов был разделен запятыми? Это можно сделать.
Shell + coreutils
Поскольку каждый отправляет oneliners, вот и мой (mkdir + замена параметра плюс + перенаправление оболочки).
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ mkdir $( tr '[,\n]' ' ' < /home/xieerqi/dirList.txt )
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
Shell + coreutils
AWK - это язык обработки текста, но он имеет очень приятную функцию system(), которая вызовет оболочку по умолчанию, и запустите команду [s], заключенную в скобки (которая должна быть строкой).
DIR:/xieerqi
skolodya@ubuntu:$ awk -F ',' '{for(i=1;i<=NF;i++) system("mkdir "$i)}' dirList.txt
DIR:/xieerqi
skolodya@ubuntu:$ ls -ld dir*
-rw-rw-r-- 1 xieerqi xieerqi 23 Feb 9 11:41 dirList.txt
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirone/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirthree/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirtwo/
DIR:/xieerqi
skolodya@ubuntu:$ cat dirList.txt
dirone,dirtwo,dirthree
Или вы можете удалить , с функцией gsub() и вызвать system("mkdir "$0), но это может быть проблемой, если вы хотите создать каталоги с пробелами в их имени
Python
Pythonic способ сделать то же самое, будет читать каждую строку, избавиться от трейлинга \n, перетащить все в один список и перебрать элементы списка и создать dirs в элементе списка , Обратите внимание, что в приведенном ниже примере /home/xieerqi/dirList.txt - полный путь к моему файлу, и мы составляем полный путь каждого нового каталога, присоединяя строку /home/username/ и имя dir, считанное из списка. При необходимости замените свои собственные значения
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ /home/xieerqi/makeDirs.py
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
DIR:/testdir
skolodya@ubuntu:$ cat /home/xieerqi/makeDirs.py
#!/usr/bin/env python
import os
with open("/home/xieerqi/dirList.txt") as file:
for line in file:
for directory in line.strip().rsplit(','):
path = '/home/xieerqi/testdir/' + directory
os.makedirs(path)
Составьте список имен для ваших нужных каталогов, используя разделители строк вместо запятых в качестве разделителя. Сохраните этот список.
mkdir `cat list`
Теперь у вас должны быть все каталоги, названные в вашем списке.
Это очень просто, позволяет создать структуру каталогов, такую как:
Websites/
static/
cs
js
templates/
html
Вы можете сделать это в одной команде следующим образом:
mkdir -p Website/{static/{cs,js},templates/html}
Be осторожно, чтобы не вводить пробелы
Вы можете использовать списки для создания каталогов, и это может стать довольно диким.
Некоторые примеры, чтобы заставить людей задуматься об этом:
mkdir sa{1..50}
mkdir -p sa{1..50}/sax{1..50}
mkdir {a-z}12345
mkdir {1,2,3}
mkdir test{01..10}
mkdir -p `date '+%y%m%d'`/{1,2,3}
mkdir -p $USER/{1,2,3}
50 каталогов от sa1 до sa50 но каждая из каталогов будет содержать 50 раз sax1 через sax50 (-p создаст родительские каталоги, если их не существует). 26 каталогов из списка с разделителями-запятыми от a12345 до z12345 делают dirs 1, 2 и 3. 10 каталогов с test01 до test10. то же, что и 4, но с текущей датой в качестве каталога и 1,2,3 в нем. то же, что и 4, но с текущим пользователем в качестве каталога и 1,2,3 в нем. Итак, если я правильно понял и вы хотите создать некоторые каталоги, а внутри них - новые каталоги, тогда вы можете сделать это:
mkdir -p sa{1..10}/{1,2,3}
и получить sa1, sa2, ..., sa10 и внутри каждый из них 1, 2 и 3.
Что-то вроде этого? (спасибо muru для наконечника printf)
printf '%s' 'foo,bar,baz' | xargs -d, mkdir
$ ls
$ printf '%s' 'foo,bar,baz' | xargs -d, mkdir
$ ls
bar baz foo
$
Вы можете превратить его в функцию для удобства использования:
function mkdir_cs {
printf '%s' "$1" | xargs -d, mkdir
}
$ ls
$ mkdir_cs 'foo,bar,baz'
$ ls
bar baz foo
$
Итак, вы хотите, чтобы список имен каталогов был разделен запятыми? Это можно сделать.
Shell + coreutils
Поскольку каждый отправляет oneliners, вот и мой (mkdir + замена параметра плюс + перенаправление оболочки).
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ mkdir $( tr '[,\n]' ' ' < /home/xieerqi/dirList.txt )
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
Shell + coreutils
AWK - это язык обработки текста, но он имеет очень приятную функцию system(), которая вызовет оболочку по умолчанию, и запустите команду [s], заключенную в скобки (которая должна быть строкой).
DIR:/xieerqi
skolodya@ubuntu:$ awk -F ',' '{for(i=1;i<=NF;i++) system("mkdir "$i)}' dirList.txt
DIR:/xieerqi
skolodya@ubuntu:$ ls -ld dir*
-rw-rw-r-- 1 xieerqi xieerqi 23 Feb 9 11:41 dirList.txt
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirone/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirthree/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirtwo/
DIR:/xieerqi
skolodya@ubuntu:$ cat dirList.txt
dirone,dirtwo,dirthree
Или вы можете удалить , с функцией gsub() и вызвать system("mkdir "$0), но это может быть проблемой, если вы хотите создать каталоги с пробелами в их имени
Python
Pythonic способ сделать то же самое, будет читать каждую строку, избавиться от трейлинга \n, перетащить все в один список и перебрать элементы списка и создать dirs в элементе списка , Обратите внимание, что в приведенном ниже примере /home/xieerqi/dirList.txt - полный путь к моему файлу, и мы составляем полный путь каждого нового каталога, присоединяя строку /home/username/ и имя dir, считанное из списка. При необходимости замените свои собственные значения
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ /home/xieerqi/makeDirs.py
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
DIR:/testdir
skolodya@ubuntu:$ cat /home/xieerqi/makeDirs.py
#!/usr/bin/env python
import os
with open("/home/xieerqi/dirList.txt") as file:
for line in file:
for directory in line.strip().rsplit(','):
path = '/home/xieerqi/testdir/' + directory
os.makedirs(path)
Составьте список имен для ваших нужных каталогов, используя разделители строк вместо запятых в качестве разделителя. Сохраните этот список.
mkdir `cat list`
Теперь у вас должны быть все каталоги, названные в вашем списке.
Команда mkdir принимает несколько аргументов, просто запускаемых, как показано ниже
mkdir dir1 dir2 dir3 ... dirN
Если вы хотите создать несколько подкаталогов, вы можете передать эти аргументы в {}, как показано ниже
mkdir dir1 dir2/{subdir1, subdir2, subdir3, subdirN} dir3 dirN