Как узнать, завершились ли операции с файлом через скрипт bash?

Был сторонний PPA, и теперь он не поддерживается / не работает как ожидалось

. Лучший способ - официальный сайт:

Загрузить Netbeans здесь Открыть окно терминала или использовать ctrl + alt + T Дать разрешение и запустить Netbeans Installer cd </path/to>/netbeans* chmod +x netbeans-*-linux.sh ./netbeans-*-linux.sh Процесс установки:

enter image description here

enter image description here

enter image description here

1
задан 15 January 2018 в 16:08

8 ответов

Не видя фактического скрипта, трудно понять, какие команды вы используете для своих файловых операций.

Один очень простой способ - просто создать временный файл после завершения действия copy / move, например

#copy action cp $1 /home/user/backup/ touch /tmp/finished.tmp

, а затем проверьте, есть ли файл или имеются ли последние изменения с

ls -lha /tmp/finished

или для автоматического Периодическая проверка

watch ls -lha /tmp/finished

В зависимости от ваших потребностей вы можете назвать каждый временный файл, например, задание copy / move, которое он представляет, возможно, все в одном каталоге

# set the variable JOBNAME via input or via sourcename # JOBNAME=$SOURCE # JOBNAME=$2 mkdir /tmp/copyjobs # your copy job here touch /tmp/copyjobs/finished.$JOBNAME.tmp # your next copy job here touch /tmp/copyjobs/finished.$JOBNAME.tmp

Затем смотрите целая директория

watch ls -lha /tmp/copyjobs/

В зависимости от вашего навыка вы также можете использовать циклы и т. д.

У таких инструментов, как rsync, есть встроенная панель выполнения для командной строки, поэтому вы можете видеть, насколько далеко продвинута ваша работа с --progress или -P.

Но rsync может быть не лучшим инструментом для работы.

0
ответ дан 17 July 2018 в 23:00

«gcp» - ваш друг:)

Это то, что вам нужно?

$ gcp -rf test.file tmp/ Copying 404.32 MiB 100% |############################| 471.12 MB/s Time: 0:00:00
0
ответ дан 17 July 2018 в 23:00
Первым шагом является проверка завершения операции копирования. Я думаю, вы уже проверили этот шаг. Второй шаг - проверить, что буферы сброшены (буферизованные данные в ОЗУ окончательно записаны на целевое устройство, так что содержимое файла действительно хранится в файле в разделе в диске). Вы можете запустить sync, чтобы сбросить буферы. Когда sync выполняется, и bash возвращается к приглашению, этот второй шаг также завершен. Первым шагом является проверка завершения операции копирования. Я думаю, вы уже проверили этот шаг.
1
ответ дан 17 July 2018 в 23:00

Предположим, что вы используете cp, процесс может начать второй

cp SOURCE TARGET ALERTCOMMAND

Не существует предопределенной команды оповещения, но вы можете выпускать все, что у вас есть, и, по-видимому, подходит, возможно, воспроизвести аудио фрагмент с аудио-плеер для повышения осведомленности. В прежние времена, когда у людей были оптические диски, открытие их с помощью команды извлечения также было опцией. :)

cp SOURCE TARGET && FANFARE || REQUIEM

Опять же, нет такой команды, как FANFARE или REQUIEM. В зависимости от успеха или неудачи вы можете выдавать разные команды в одной строке. Будь креативным. На одном и том же виртуальном рабочем столе всплывающая новая программа повышает осведомленность - например, в случае с человеком. Или используйте xmessage:

cp SOURCE TARGET && xmessage "Done"
0
ответ дан 17 July 2018 в 23:00

Не видя фактического скрипта, трудно понять, какие команды вы используете для своих файловых операций.

Один очень простой способ - просто создать временный файл после завершения действия copy / move, например

#copy action cp $1 /home/user/backup/ touch /tmp/finished.tmp

, а затем проверьте, есть ли файл или имеются ли последние изменения с

ls -lha /tmp/finished

или для автоматического Периодическая проверка

watch ls -lha /tmp/finished

В зависимости от ваших потребностей вы можете назвать каждый временный файл, например, задание copy / move, которое он представляет, возможно, все в одном каталоге

# set the variable JOBNAME via input or via sourcename # JOBNAME=$SOURCE # JOBNAME=$2 mkdir /tmp/copyjobs # your copy job here touch /tmp/copyjobs/finished.$JOBNAME.tmp # your next copy job here touch /tmp/copyjobs/finished.$JOBNAME.tmp

Затем смотрите целая директория

watch ls -lha /tmp/copyjobs/

В зависимости от вашего навыка вы также можете использовать циклы и т. д.

У таких инструментов, как rsync, есть встроенная панель выполнения для командной строки, поэтому вы можете видеть, насколько далеко продвинута ваша работа с --progress или -P.

Но rsync может быть не лучшим инструментом для работы.

0
ответ дан 24 July 2018 в 13:34

«gcp» - ваш друг:)

Это то, что вам нужно?

$ gcp -rf test.file tmp/ Copying 404.32 MiB 100% |############################| 471.12 MB/s Time: 0:00:00
0
ответ дан 24 July 2018 в 13:34
Первым шагом является проверка завершения операции копирования. Я думаю, вы уже проверили этот шаг. Второй шаг - проверить, что буферы сброшены (буферизованные данные в ОЗУ окончательно записаны на целевое устройство, так что содержимое файла действительно хранится в файле в разделе в диске). Вы можете запустить sync, чтобы сбросить буферы. Когда sync выполняется, и bash возвращается к приглашению, этот второй шаг также завершен. Первым шагом является проверка завершения операции копирования. Я думаю, вы уже проверили этот шаг.
1
ответ дан 24 July 2018 в 13:34

Предположим, что вы используете cp, процесс может начать второй

cp SOURCE TARGET ALERTCOMMAND

Не существует предопределенной команды оповещения, но вы можете выпускать все, что у вас есть, и, по-видимому, подходит, возможно, воспроизвести аудио фрагмент с аудио-плеер для повышения осведомленности. В прежние времена, когда у людей были оптические диски, открытие их с помощью команды извлечения также было опцией. :)

cp SOURCE TARGET && FANFARE || REQUIEM

Опять же, нет такой команды, как FANFARE или REQUIEM. В зависимости от успеха или неудачи вы можете выдавать разные команды в одной строке. Будь креативным. На одном и том же виртуальном рабочем столе всплывающая новая программа повышает осведомленность - например, в случае с человеком. Или используйте xmessage:

cp SOURCE TARGET && xmessage "Done"
0
ответ дан 24 July 2018 в 13:34

Другие вопросы по тегам:

Похожие вопросы: