Вопросы с тегом «shell»

Оболочка является интерфейсом командной строки Unix. Вы можете вводить команды в оболочке в интерактивном режиме или писать сценарии для автоматизации задач. Используйте этот тег для вопросов, относящихся к / bin / sh и большинству совместимых оболочек (ash, bash, ksh, zsh,…). Для сценариев оболочки с ошибками, пожалуйста, проверьте их в http://shellcheck.net перед публикацией здесь.


13
Какой самый эффективный способ подсчета количества файлов в каталоге?
CentOS 5.9 Я столкнулся с проблемой на днях, когда в каталоге было много файлов. Чтобы посчитать это, я побежалls -l /foo/foo2/ | wc -l Оказывается, в одном каталоге было более 1 миллиона файлов (длинная история - основная причина исправляется). Мой вопрос: есть ли более быстрый способ сделать подсчет? Какой самый …
55 bash  shell  directory  ls 

5
Добавление текущей даты из переменной в имя файла
Я пытаюсь добавить текущую дату в конец имени файла следующим образом: TheFile.log.2012-02-11 Вот что у меня так далеко: set today = 'date +%Y' mkdir -p The_Logs & find . -name The_Logs -atime -1 -type d -exec mv \{} "The_Logs_+$today" \; & Однако все, что я получаю, это имя файла, и …
55 bash  shell  rename  date 

10
Как rsync файлы между двумя пультами?
Я хотел бы передавать файлы между двумя удаленными узлами, используя локальную оболочку, но кажется, что rsync не поддерживает синхронизацию, если два удаленных узла указаны следующим образом: $ rsync -vuar host1:/var/www host2:/var/www The source and destination cannot both be remote. Какие другие обходные пути / команды я мог бы использовать для …
54 shell  ssh  rsync 


8
Заставить `rm` перейти в корзину
Существует ли сценарий / приложение для Linux, которое вместо удаления файлов перемещает их в специальную «корзину»? Я хотел бы это как замену rm(может быть, даже псевдоним последнего; есть плюсы и минусы для этого). Под «мусором» я подразумеваю специальную папку. Одиночный mv $* ~/.trashфайл - это первый шаг, но в идеале …
54 shell  rm 

2
'Меньше' эквивалент командной строки 'tail -f'
Я хотел бы открыть файл с помощью less, и он автоматически прокручивает файл, похожий на tail -f. Я знаю, что я могу сделать less file, а затем ударил Shift-Fвперед навсегда; как tail -f. Мне нужно, lessпотому что он предоставляет --raw-control-charsфлаг, который необходим, потому что мой ввод красочный.
54 shell  less  tail 

3
Как сделать так, чтобы переменные среды «экспортировались» в скрипте оболочки?
У меня есть несколько учетных записей Amazon EC2 и я хочу быстро переключаться между переменными, например $EC2_HOME, с помощью сценария. У меня есть сценарий оболочки, настроенный так: #!/bin/sh export EC2_HOME=/home/me/.ec2 echo $EC2_HOME Когда я запускаю скрипт, я знаю, что EC2_HOMEон установлен, но я подумал, что использование exportзаставит переменную остаться после …

4
Почему тильда (~) не раскрывается в двойных кавычках?
Согласно этому ответу и моему собственному пониманию, тильда расширяется до домашнего каталога: $ echo ~ /home/braiam Теперь, когда я хочу, чтобы раскрытие оболочки работало, то есть с использованием таких имен переменных $FOO, а не прерывалось из-за непредвиденных символов, таких пробелов и т. Д., Следует использовать двойные кавычки ": $ FOO="some …
54 shell 

2
Замена только определенных переменных с envsubst
Я пытаюсь выполнить замену переменных среды через envsubst, но я хочу заменить только определенные переменные. Из документов я должен сказать, envsubstчтобы заменить только определенные переменные, но я не могу это сделать. Например, если у меня есть файл, содержащий: VAR_1=${VAR_1} VAR_2=${VAR_2} как выполнить envsubstтак, чтобы он заменял только ссылку на ${VAR_1}?

5
Как сделать оператор if из результата выполненной команды
Я пытаюсь сделать оператор IF из вывода выполненной команды. Вот как я пытаюсь это сделать, но это не работает. Кто-нибудь знает правильный способ сделать это? if [ "`netstat -lnp | grep ':8080'`" == *java* ]; then echo "Found a Tomcat!" fi

4
Всегда ли подстановочный знак Bash star * создает отсортированный список (по возрастанию)?
У меня есть каталог, заполненный файлами с именами, например, logXXгде XX - это двухсимвольное шестнадцатеричное число, набранное нулями, например: log00 log01 log02 ... log0A log0B log0C ... log4E log4F log50 ... Обычно будет меньше, чем, скажем, 20 или 30 файлов. На дату и время моей конкретной системы нельзя положиться (встроенная …
53 bash  shell  wildcards 

6
Есть ли какая-то причина, чтобы шебанг указывал на / bin / sh, а не на / bin / bash?
В большинстве сценариев оболочки, которые я видел (кроме тех, которые я сам не написал), я заметил, что shebang установлен в #!/bin/sh. Это не очень удивляет меня в старых скриптах, но есть и в довольно новых скриптах. Есть ли основания для предпочтения /bin/shболее /bin/bash, так как bashэто в значительной степени повсеместно, …
53 bash  shell  history  shebang 

1
Rm. * Удаляет ли родительский каталог?
Выражение .*расширяется с помощью bash для включения текущего и родительского каталогов: $ ls -la total 2600 drwxrwxrwx 2 terdon terdon 2162688 Sep 10 16:22 . drwxr-xr-x 142 terdon terdon 491520 Sep 10 15:34 .. -rw-r--r-- 1 terdon terdon 0 Sep 10 16:22 foo $ echo .* . .. Если я …
53 shell  wildcards  rm  posix 

7
Тайм-аут в сценарии оболочки
У меня есть сценарий оболочки, который читает со стандартного ввода . В редких случаях никто не будет готов предоставить данные, и сценарий должен отключиться . В случае тайм-аута скрипт должен выполнить некоторый код очистки. Какой лучший способ сделать это? Этот сценарий должен быть очень переносимым , в том числе для …
53 shell  signals  timeout 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.