LINUX.ORG.RU

баг в file в kubuntu 14.10


0

2

изменилось поведение file после апдейта kubuntu с 14.04 до 14.10:

sts@sts-home-desktop:~$ file ./Downloads
./Downloads: symbolic link to `Загрузки/' 
sts@sts-home-desktop:~$ echo $?
0 
sts@sts-home-desktop:~$ file ./Down
./Down: cannot open `./Down' (No such file or directory)
sts@sts-home-desktop:~$ echo $?
0
с учетом
RETURN CODE 
     file returns 0 on success, and non-zero on error.
бага? кто-нибудь сталкивался?

если что, русская локализация (уже были баги с gettext во fusion)


кто-нибудь сталкивался?

Нет.

sys-apps/file-5.20

Сделай dpkg -S /usr/bin/file

Проверь версию пакета.

Deleted ()
Ответ на: комментарий от Deleted
sts@sts-home-desktop:/mnt$ file -v
file-5.19
magic file from /etc/magic:/usr/share/misc/magic
sts@sts-home-desktop:/mnt$ dpkg -S /usr/bin/file
file: /usr/bin/file
nar ()
Ответ на: комментарий от nar

stst пока еще работает, в отличие от file

sts@sts-home-desktop:/mnt$ if stat ./HD_a ; then echo "ok" ; else echo "nok" ; fi
stat: не удалось выполнить stat для «./HD_a»: Нет такого файла или каталога
nok
sts@sts-home-desktop:/mnt$ if stat ./HD_a2.sh ; then echo "ok" ; else echo "nok" ; fi
  Файл: «./HD_a2.sh»
  Размер: 177           Блоков: 8          Блок В/В: 4096   обычный файл
Устройство: 801h/2049d  Inode: 6815791     Ссылки: 1
Доступ: (1777/-rwxrwxrwt)  Uid: ( 1000/     sts)   Gid: ( 1000/     sts)
Доступ: 2014-10-30 23:44:54.925583001 +0300
Модифицирован: 2012-02-09 20:13:24.943595118 +0400
Изменён: 2014-10-30 23:44:54.425582994 +0300
 Создан: -
ok

sts@sts-home-desktop:/mnt$ if file ./HD_a2.sh ; then echo "ok" ; else echo "nok" ; fi
./HD_a2.sh: sticky Bourne-Again shell script, ASCII text executable
ok
sts@sts-home-desktop:/mnt$ if file ./HD_a2.s ; then echo "ok" ; else echo "nok" ; fi
./HD_a2.s: cannot open `./HD_a2.s' (No such file or directory)
ok
nar ()
Ответ на: комментарий от nar

на другой системе:

root@nas:/home# file -v
file-4.23
magic file from /ffp/share/file/magic
root@nas:/home# if file ./ftp/ ; then echo "ok" ; else echo "nok" ; fi
./ftp/: directory
ok
root@nas:/home# if file ./fp/ ; then echo "ok" ; else echo "nok" ; fi
./fp/: cannot open `./fp/' (No such file or directory)
ok
root@nas:/home# if stat ./fp/ ; then echo "ok" ; else echo "nok" ; fi
stat: cannot stat './fp/': No such file or directory
nok
root@nas:/home# if stat ./ftp/ ; then echo "ok" ; else echo "nok" ; fi
  File: "./ftp/"
  Size: 1024            Blocks: 2          IO Block: 4096   directory
Device: 100h/256d       Inode: 1439        Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-04-06 15:03:36.000000000
Modify: 2005-12-27 11:46:09.000000000
Change: 2009-10-01 07:22:31.000000000

ok
объясните что происходит?

оно и не должно было работать что ли?

nar ()
Ответ на: комментарий от nar

Вы делаете ошибки при указывании файла :)

galym@gentoo ~/test/stages $  if file ./buildsysiso.sh ; then echo "ok" ; else echo "nok" ; fi
./buildsysiso.sh: Bourne-Again shell script, UTF-8 Unicode text executable
ok
galym@gentoo ~/test/stages $  if file ./buildsysiso.sh ; then echo "ok" ; else echo "nok" ; fi
./buildsysiso.sh: Bourne-Again shell script, UTF-8 Unicode text executable
ok
  if stat ./buildsysiso.sh ; then echo "ok" ; else echo "nok" ; fi
  Файл: «./buildsysiso.sh»
  Размер: 6047          Блоков: 16         Блок В/В: 4096   обычный файл
Устройство: 806h/2054d  Inode: 2491952     Ссылки: 1
Доступ: (0700/-rwx------)  Uid: ( 1003/   galym)   Gid: (  100/   users)
Доступ: 2014-09-25 05:52:05.395242756 +0600
Модифицирован: 2014-09-25 05:52:05.395242756 +0600
Изменён: 2014-10-03 03:27:02.444522770 +0600
 Создан: -
ok
Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от nar

Сначала вы указываете ftp, а затем fp, которого видимо не существует. А затем снова ftp. Это что, троллинг такой?

Deleted ()
Ответ на: комментарий от Deleted

там всего 4 вызова

2 с использованием stat который работает верно

и 2 c использованием file который работает не верно

по 1 вызову на существующем и не существующем файле

на существующем файле д.быть вывод «ok»

на не существующем «nok»

сравнение со stat сделано чтобы не искать ошибок в коде, чтобы понимать, что неправилен именно код возврата file

так понятнее?

это все в каких-то доморощенных скриптах работало много лет и вдруг перестало

с удивлением обнаружил, что на другой системе (какой-то кулон uclinux) оно тоже так себя ведет

возникает вопрос почему раньше на убу3нте это дело тогда работало

nar ()
Ответ на: комментарий от at

Спасибо за ссылку. Хотел было сказать, что для целей ТСа предназначен test, а не file, но не знал, на что сослаться. Оказывается, это оговорено POSIX

si0 ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.