К сожалению, вы не сможете увидеть их все. Вы должны были настроить это сразу после установки системы.
Здесь интерес представляют две переменные окружения, HISTSIZE
и HISTFILESIZE
. Первая управляет количеством команд, сохраненных для текущего сеанса. Второй определяет, сколько команд будет храниться в файле истории. Вы можете посмотреть, как они установлены в настоящее время:
echo "$HISTSIZE"
echo "$HISTFILESIZE"
Вы можете определить их в вашем файле .bashrc
(или в системном файле bashrc), добавив следующие строки:
HISTSIZE=[5000 seems to be a common default]
HISTFILESIZE=[large number of your choice]
Обратите внимание, что только HISTFILESIZE
влияет на файл истории, а HISTSIZE
- это только то, что хранится в списке истории для данной сессии.
Также проверьте этот ответ.
Большое спасибо Эду Невиллу. Как вы можете видеть ниже, он предложил передать переменной команду dirname. Вот окончательный код. Сценарий запрашивает ключевое слово, которое он использует для поиска в подкаталогах (в зависимости от того, куда вы поместили сценарий). Затем он захватывает путь к каталогу и игнорирует имя файла и перемещает каталог целиком туда, куда вы хотите, и спрашивает, хотите ли вы продолжить поиск ключевых слов и перемещать каталоги, пока вы не ответите «n», то есть нет.
#!/bin/bash
while true;
do
echo "Type in keyword & press enter..."
read KEYWORD
HERE=$(grep -i "$KEYWORD" */*/webvirtualmx)
echo $HERE
DIR=$(dirname "$HERE")
ANSWER2="y";read -p "Do you want to move to old? y or n?" ANSWER2;
if [ "$ANSWER2" = "y" ] && test -d "$DIR";
#then mv -i -v $DIR /u1/OLD
fi
ANSWER="n";read -p "Do you have more keywords? y or n?" ANSWER;
if [ "$ANSWER" = "n" ]
then break
fi
done
Если $HERE
содержит имя файла, то я думаю, что проще всего будет сделать следующее:
mv -i -v `dirname $HERE` /u1/OLD
Если вам нужна безопасность, вы можете сделать:
DIR=`dirname $HERE`
if test -d "$DIR"; then
mv -i -v "$DIR" /u1/OLD
fi