Вы могли установить apt-cacher-ng на запасной машине для действия как прокси/кэш для всех хостов. Можно вынудить конфигурацию только использовать определенные хосты или использовать прием/etc/hosts, предложенный @badp на той одной машине.
apt-get install apt-cacher-ng
После того как у Вас есть установка apt-cache-ng, просто необходимо отбросить следующую строку (с IP-адресом / имя хоста, измененное для указания на машину ловца) в/etc/apt/apt.conf.d/90httpproxy
Acquire::http { Proxy "http://[192.168.1.254]:3142"; };
Я использую ту установку для сокращения использования пропускной способности, но это должно обходное решение проблема. К сожалению, я не знаю о способе непосредственно отключить ipv6 поиски для Кв. - вовлекают себя.
Большинство нельдов не имеет понятия времени создания файла. Вы не можете сделать ls
распечатайте его, потому что информация не зарегистрирована. При необходимости во времени создания используйте систему управления версиями: определите время создания как время регистрации.
Если Ваш вариант Unix имеет время создания, посмотрите на его документацию. Например, на Mac OS X (единственный пример я знаю о ¹), использовать ls -tU
. Windows также хранит время создания, но он не всегда выставляется портам утилит Unix, например, Cygwin ls
не имеет опции показать его. stat
утилита может показать время создания, названное “время рождения” в утилитах GNU, таким образом, под Cygwin можно показать файлы, отсортированные по рождению время с stat -c '%W %n' * | sort -k1n
.
Обратите внимание что ctime (ls -lc
) не время создания файла, это - время изменения inode. Время изменения inode обновляется каждый раз, когда что-либо об изменениях файла (содержание или метаданные) за исключением того, что ctime не обновляется, когда файл просто читается (даже если atime обновляется). В частности, ctime всегда более свеж, чем mtime (время изменения содержания файла), если mtime не был явно установлен на дату в будущем.
К сожалению, stat(2)
API не позволяет получать время создания файла, поскольку он не требуется стандартами Unix.
Однако некоторые файловые системы, как ext4
, действительно сохраните эту информацию в файле metadatas. Нет только никакого стандартного способа получить его, но существует путь (ext
только файловые системы):
debugfs -R 'stat partition/relative/path/to/file' /dev/sda1
Вы получили бы что-то как это упоминание crtime
(нет ctime
!), если Вы используете ext4
.
ctime: 0x513a50e5:d4e448f0 -- Fri Mar 8 21:58:13 2013
atime: 0x513dd8f1:04df0b20 -- Mon Mar 11 14:15:29 2013
mtime: 0x513a50e5:d4e448f0 -- Fri Mar 8 21:58:13 2013
crtime: 0x513a259a:35191a3c -- Fri Mar 8 18:53:30 2013
Эта команда может занять время для возврата, вероятно, потому что она также перечисляет каждую степень, связанную с файлом.
Теперь, если Вы хотите заказать файлы датой создания, я предполагаю, что это не легко (ни правильно) возможно. Как Gilles говорит, вероятно, было бы легче при использовании системы управления версиями. Но можно попытаться взглянуть на ext4
API...
Я попробовал stat -c '%w' myfile
команда на a ext4
файловая система на (достаточно недавний) система Ubuntu без успеха (это просто отвечает -
).
f='/path/to/file'; debugfs -R "stat $f" $(df $f|(read a; read a b; echo "$a"))|grep crtime
– Boop
27.03.2018, 14:37
Вот Perl-скрипт, который использует ответ Totor для достижения желаемого (если ваша файловая система - ext4).
Работает на моей домашней машине (Ubuntu) и на моем сервере (CentOS), но не тестировался, так что ymmv.
#!/usr/bin/env perl
use Modern::Perl '2009';
use DateTime;
# Open the current directory for reading
opendir my $dh, "." or die "Unable to open directory: $!";
# Create a hash to save results into
my %results;
my %datestamp;
# Loop through the directory getting creation date stats for each file
while ( my $filename = readdir $dh ) {
# Skip non-files
next if $filename eq '.' or $filename eq '..';
# Save the ls output for this file/directory
$results{ $filename } = `ls -ld $filename`;
my $stats = `debugfs -R 'stat $filename' /dev/sda6 2>/dev/null`;
# crtime: 0x51cd731c:926999ec -- Fri Jun 28 12:27:24 2013
$stats =~ m/crtime\: \w+\:\w+ -- (.+?)\n/s;
my $datestring = $1;
# Dissect date with a regexp, ick
my %months = (
'Jan' => '1',
'Feb' => '2',
'Mar' => '3',
'Apr' => '4',
'May' => '5',
'Jun' => '6',
'Jul' => '7',
'Aug' => '8',
'Sep' => '9',
'Oct' => '10',
'Nov' => '11',
'Dec' => '12',
);
$datestring =~ m/\w+ (\w+) ?(\d+) (\d\d)\:(\d\d)\:(\d\d) (\d\d\d\d)/;
# Convert date into a more useful format
my $dt = DateTime->new(
year => $6,
month => $months{$1},
day => $2,
hour => $3,
minute => $4,
second => $5,
);
# Save the datestamp for this result
$datestamp{ $filename } = $dt->iso8601;
}
# Output in date order
my @filenames = sort { $datestamp{$a} gt $datestamp{$b} } keys %datestamp;
foreach my $filename ( @filenames ) {
print $results{ $filename };
}
[Редактировать]
Используйте эту команду ls -lct
для сортировки файлов поctime
(времени последнего изменения информации о состоянии файла ).
Сделать это в оболочке. ls не предоставляет время создания, но время изменения. Только debugfs может показать время создания, если раздел ext4
disk=$(df -Th. | grep ext4 |awk '{print $1}')
for file in "."/*
do
inode=$(ls -i $file | awk '{print $1}')
crtime=$(debugfs -R "stat <$inode>" $disk 2>/dev/null | grep crtime | awk -F'-- ' '{print $2}' | awk '{print $2,$3,$5,$4}')
printf "$crtime\t$file\n"
done | sort -k4 | sort -n -k 3 -k 1M -k2 -k4
В системах Linux с ядром 4.11 или более поздней версии, с glibc 2.28 или более поздней версии и coreutils 8.31 или более поздней версии , stat
могут отображать время рождения файла в файловых системах, в которых он хранится. Вывод, аналогичный ls -l
, можно получить с помощью
stat -c "%A %4h %U %G %10s %.16w %n" -- *
и отсортированный вывод (при отсутствии имени файла с символами новой строки )с
stat -c "%.10W %A %4h %U %G %10s %.16w %n" -- * |
sort -k1,1n |
cut -d' ' -f2-
В coreutils 8.32 или более поздней версии , ls
можно отображать и сортировать по времени рождения, используя параметр --time=birth
:
ls -l --time=birth
Выше stat
вызовы используют эти параметры форматирования:
%.10W
:время рождения в секундах с эпохи Unix (с 10-значной дробной частью ). %A
:тип файла и разрешения в формате ls -l
%4h
:количество жестких ссылок на файл, выровненных по четырем символам %U
:имя пользователя-владельца %G
:название группы-владельца %10s
:размер файла, выровненный по десяти символам %.16w
:время рождения в человеческом -удобочитаемом формате, усеченном до шестнадцати символов (достаточного для отображения года, месяца, дня, часа, минуты и секунды)%n
:имя файла
ls -c
.ls --help
шоу, что-c
делает в сочетании с-l
и-lt
. – Aaron D. Marasco 12.09.2011, 04:37-U
виды ко времени создания. В соответствии с Солярисом 10.x:/usr/bin/ls
не поддерживает-U
,/usr/ucb/ls
поддержки-U
и действительно сортирует ко времени создания. Эти результаты, очевидно, зависят от файловой системы, хранящей ту информацию во-первых. – Brian Vandenberg 12.06.2012, 22:44