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

55
Добавление текущей даты из переменной в имя файла

Я пытаюсь добавить текущую дату в конец имени файла следующим образом: 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
Почему никто не использует настоящую оболочку Bourne как / bin / sh?

Я заметил, что практически ни одна из систем, с которыми я когда-либо работал, не имеет /bin/shнастоящего исполняемого файла. Это всегда символическая ссылка dash, bashв режиме POSIX или что-то подобное. Почему? Каковы недостатки использования истинного, оригинального /bin/sh? (Скорость?...

55
Какой самый эффективный способ подсчета количества файлов в каталоге?

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

55
Использование touch и vi?

Есть ли преимущество создания файла с сенсорным до редактирования .. как: touch foo vi foo вместо того, чтобы сразу получить его в редакторе? Подобно: vi foo Я вижу довольно много уроков, использующих первый ( touchтогда...

54
'Меньше' эквивалент командной строки 'tail -f'

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

54
Как rsync файлы между двумя пультами?

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

54
Как сделать так, чтобы переменные среды «экспортировались» в скрипте оболочки?

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

54
Почему тильда (~) не раскрывается в двойных кавычках?

Согласно этому ответу и моему собственному пониманию, тильда расширяется до домашнего каталога: $ echo ~ /home/braiam Теперь, когда я хочу, чтобы раскрытие оболочки работало, то есть с использованием таких имен переменных $FOO, а не прерывалось из-за непредвиденных символов, таких пробелов и т. Д.,...

54
Заставить `rm` перейти в корзину

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

54
Как сделать оператор if из результата выполненной команды

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

54
Замена только определенных переменных с envsubst

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

53
Есть ли какая-то причина, чтобы шебанг указывал на / bin / sh, а не на / bin / bash?

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

53
Тайм-аут в сценарии оболочки

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

53
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 .* . .. Если я запускаю rm -rf .*на...

53
Понимание опции -exec `find`

Я постоянно вижу синтаксис find . -name "FILENAME" -exec rm {} \; главным образом потому, что я не понимаю, как именно эта -execчасть работает. Что означает скобки, обратный слеш и точка с запятой? Существуют ли другие варианты использования этого...

53
Всегда ли подстановочный знак Bash star * создает отсортированный список (по возрастанию)?

У меня есть каталог, заполненный файлами с именами, например, logXXгде XX - это двухсимвольное шестнадцатеричное число, набранное нулями, например: log00 log01 log02 ... log0A log0B log0C ... log4E log4F log50 ... Обычно будет меньше, чем, скажем, 20 или 30 файлов. На дату и время моей конкретной...

52
Использование шаблонов OR в подстановочных знаках оболочки

Содержимое моего каталога $ ls -lrt total 0 -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 night.txt -rw-r--r-- 1 user1 admin 19 Oct 8 12:31 noon.txt -rw-r--r-- 1 user1 admin 38 Oct 8 12:31 day.txt Я хотел бы перечислить детали файлов, которые имеют слово в имени файла, как указано. Пример : $ ls -lrt...

52
Какой самый простой способ найти неиспользуемый локальный порт?

Какой самый простой способ найти неиспользуемый локальный порт? В настоящее время я использую что-то похожее на это: port=$RANDOM quit=0 while [ "$quit" -ne 1 ]; do netstat -a | grep $port >> /dev/null if [ $? -gt 0 ]; then quit=1 else port=`expr $port + 1` fi done Это кажется ужасно...