Функция находится в libX11 - изменяющий X-серверы, не будет иметь значения. Не видя источник программы, мы не можем предположить, если изменение настроек локали мешало бы ему вызвать функцию, но изменить локаль не будет мешать компоновщику пытаться найти его в библиотеке.
Единственный способ получить libX11 для Соляриса 10 или более старый с той функцией в состоит в том, чтобы создать libX11 самостоятельно. Это не будет полностью совместимо с существующим X двоичных файлов все же. Sun/Oracle никогда не бэкпортировал новый libX11 от OpenSolaris/Solaris 11 до более старых выпусков.
По крайней мере с некоторыми версиями diffutils' GNU diff
, можно использовать -N
флаг, чтобы сделать это непосредственно (хотя в документации, кажется, говорится, что только работает на каталог diffs).
$ ls
foo
$ cat foo
foo
$ diff -u foo bar
diff: bar: No such file or directory
$ diff -uN bar foo
--- bar 1970-01-01 01:00:00.000000000 +0100
+++ foo 2012-09-04 12:45:34.000000000 +0200
@@ -0,0 +1 @@
+foo
$ diff -uN foo bar
--- foo 2012-09-04 12:45:34.000000000 +0200
+++ bar 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-foo
$ diff -v
diff (GNU diffutils) 2.8.1
Copyright (C) 2002 Free Software Foundation, Inc.
Вы попробовали diff -u /dev/null filename
?
это работало на меня, когда я просто попробовал его.
альтернативно:
touch missing
diff -u missing filename
rm missing
Кроме того, если Вы различные каталоги (например. diff -x /path/to/backup -uN / /path/to/backup
) затем разность рекурсивно покажет полный diffs всех файлов, включая недостающие файлы. Вам нужно -x, --exclude=PAT
опция, потому что/path/to/backup является subdir /
(благодаря Mat для напоминания мне-N опции)
diff -N
кажется, делает точно, что Вы хотите, не наполняя вокруг tempfiles или/dev/null, и он дает Вам рекурсивную разность с двумя каталогами, которую я отредактировал из своего ответа, потому что он не работает правильно без -N
– cas
04.09.2012, 14:02
-N, --new-file
treat absent files as empty
– cas 04.09.2012, 14:05