Там существует файл команду в терминале убунту? [dубликат]

В этом вопросе уже есть ответ: проверить, есть ли файл в скрипте 2 ответа

Как-нибудь я могу проверить, существует ли файл или папка в терминале Ubuntu?

4
задан 9 November 2017 в 11:11

3 ответа

Вы можете использовать команду test для оболочки bash.

$ test -e ~/.bashrc && echo file exists || echo file not found
file exists
$ test -e ~/.bashrcx && echo file exists || echo file not found
file not found

Команда

help test

печатает текст справки с различными параметрами, которые вы можете использовать команду test.

Вы также можете найти полезные справочные тексты, а также ссылки в комментарии от @dessert,

help [

и

help [[

Вы можете использовать команду test , если вы не знаете, где находится файл (так что вы должны его искать в нескольких каталогах) или вы хотите найти разные версии файла.

$ sudo find / -name .bashrc
[sudo] password for sudodus: 
/etc/skel/.bashrc
/root/.bashrc
find: ”/run/user/1002/gvfs”: Permission denied
/media/multimed-2/test/test/2015-04/colour-prompt/home/guru/.bashrc
/media/multimed-2/test/test/2015-04/colour-prompt/root/.bashrc
/media/multimed-2/test/test/2015-04/colour-prompt/etc/skel/.bashrc
/media/multimed-2/rsync-bup/nio/.bashrc
/home/lfs/.bashrc
/home/myself/.bashrc
/home/nio/.bashrc
/home/sudodus/.bashrc
9
ответ дан 22 May 2018 в 16:23
  • 1
    Вместо этого я бы рекомендовал использовать -e. См. askubuntu.com/a/970306/295286 – Sergiy Kolodyazhnyy 9 November 2017 в 11:12
  • 2
    Другим обозначением команды test является, например, [ -e ~/.bashrc ] && …, очень хорошее руководство можно найти на wiki.bash-hackers.org . test не следует путать с его современным аналогом, условным выражением , например. [F4]. Последнее намного более мощно во многих отношениях, что позволяет использовать расширенные регулярные выражения, например. – dessert 9 November 2017 в 12:50
  • 3
    @dessert, мне легко понять и запомнить test, как описано в моем ответе, при проверке наличия файлов. В других случаях, например в операторах if, я использую синтаксис, который вы описываете в своем комментарии. Я думаю, это зависит от того, как я научился использовать эти вещи ... – sudodus 9 November 2017 в 12:59
  • 4
    -e тесты для необработанного существования, -f и -d дополнительно проверяют, является ли это файлом или каталогом соответственно. – dessert 9 November 2017 в 13:01
  • 5
    @sudodus Я просто хотел добавить это, поскольку вы часто видите его в сценариях и т. д. Это может смутить людей, что [ на самом деле является командой точно так же, как например. [F2]. Условное выражение, кстати, является not командой, поэтому вы можете использовать && внутри нее - я действительно предпочитаю эту запись над -a. – dessert 9 November 2017 в 13:03

Вы можете использовать команду test для оболочки bash.

$ test -e ~/.bashrc && echo file exists || echo file not found file exists $ test -e ~/.bashrcx && echo file exists || echo file not found file not found

Команда

help test

печатает текст справки с различными параметрами, которые вы можете использовать команду test.

Вы также можете найти полезные справочные тексты, а также ссылки в комментарии от @dessert,

help [

и

help [[

Вы можете использовать команду test , если вы не знаете, где находится файл (так что вы должны его искать в нескольких каталогах) или вы хотите найти разные версии файла.

$ sudo find / -name .bashrc [sudo] password for sudodus: /etc/skel/.bashrc /root/.bashrc find: ”/run/user/1002/gvfs”: Permission denied /media/multimed-2/test/test/2015-04/colour-prompt/home/guru/.bashrc /media/multimed-2/test/test/2015-04/colour-prompt/root/.bashrc /media/multimed-2/test/test/2015-04/colour-prompt/etc/skel/.bashrc /media/multimed-2/rsync-bup/nio/.bashrc /home/lfs/.bashrc /home/myself/.bashrc /home/nio/.bashrc /home/sudodus/.bashrc
10
ответ дан 18 July 2018 в 03:36

Вы можете использовать команду test для оболочки bash.

$ test -e ~/.bashrc && echo file exists || echo file not found file exists $ test -e ~/.bashrcx && echo file exists || echo file not found file not found

Команда

help test

печатает текст справки с различными параметрами, которые вы можете использовать команду test.

Вы также можете найти полезные справочные тексты, а также ссылки в комментарии от @dessert,

help [

и

help [[

Вы можете использовать команду test , если вы не знаете, где находится файл (так что вы должны его искать в нескольких каталогах) или вы хотите найти разные версии файла.

$ sudo find / -name .bashrc [sudo] password for sudodus: /etc/skel/.bashrc /root/.bashrc find: ”/run/user/1002/gvfs”: Permission denied /media/multimed-2/test/test/2015-04/colour-prompt/home/guru/.bashrc /media/multimed-2/test/test/2015-04/colour-prompt/root/.bashrc /media/multimed-2/test/test/2015-04/colour-prompt/etc/skel/.bashrc /media/multimed-2/rsync-bup/nio/.bashrc /home/lfs/.bashrc /home/myself/.bashrc /home/nio/.bashrc /home/sudodus/.bashrc
10
ответ дан 24 July 2018 в 17:53

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

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