컴퓨터를 밤에 프리랜서로 사용할 수 있기 때문에 근무 시간에만 편집한 파일을 모두 찾아야 합니다. 날짜와 관계없이 생성/수정된 시간을 검색할 수 있는 방법이 있나요? Windows와 Linux 시스템을 모두 사용할 수 있습니다.
답변1
예, 무료 소프트웨어를 사용하여 모든 프로그램/파일의 수정된 날짜를 검색할 수 있습니다.모든 것을 검색하세요. 그러나 프로그램에서 날짜/시간 열을 클릭하고 수동으로 직접 확인해야 합니다. 안타깝게도 이 작업을 수행할 수 있는 프로그램이 없습니다. 도움이 되었기를 바랍니다. - 아프로디테
답변2
리눅스 솔루션.
있다비슷한 질문. 기반내 대답은 거기에 있어나는 이런 종류의 문제를 해결하기 위해 일반적인 Bash 스크립트를 생각해 냈습니다. 아래에서 코드를 찾을 수 있습니다. findt
(또는 다른) 이름의 파일에 저장한 다음 chmod a+x findt
. 당신이 가리키는 곳에 또는 다른 곳에 두십시오 $PATH
- 당신이 기본, 차이점 등을 알고 있다고 가정합니다.
findt -h
구문을 학습하려면 호출하세요 . 발췌:
용법
`findt [OPTION]... FROM TO [ARG]...`
개요
및 (포함)
find
사이에서 수정, 변경 또는 액세스된 개체(파일, 디렉터리 등)를 나열하는 명령을 호출합니다 . 시간 은 24시간제 또는 형식( - )으로 제공됩니다. 수정일(요일)은 중요하지 않습니다. 그 이후 이면 간격에 자정이 포함됩니다.FROM
TO
FROM
TO
HH:MM
H:MM
00:00
23:59
FROM
TO
옵션
`-h` print this help and exit `-m` use mtime (default) `-c` use ctime `-a` use atime (note: understand `noatime` mount option etc.) `-b` use birth time, `stat -c %w` (useless, see `https://unix.stackexchange.com/a/91200`)
둘 이상을
?time
지정한 경우 마지막 항목만 중요합니다.`-p` use `-print` with `find` (default) `-0` use `-print0` instead `-d` use `-delete` with `find` (non-POSIX)
-d
-p
or 가 함께 사용되지 않는 한 묵음입니다-0
.ARG
다음 인수는 초기 인수로
TO
전달됩니다 . 여기에서find
경로와 추가 테스트(예:-type f
)를 지정합니다.
대부분의 코드는 명령줄 구문 분석, 도움말 인쇄 등을 위한 것입니다. 스크립트의 작업 부분은 find
호출입니다. 약간 일반화 된 솔루션입니다.내 이미 언급한 답변. 거기에 설명이 있으니 여기서는 반복하지 않겠습니다.
를 사용하지 않는 한 도구는 이름만 인쇄합니다 -d
. 시간대 정보를 무시하고 HH:MM
일반 등에서 사용합니다 . stat -c %y
관련된 시간대가 다른 경우 솔루션을 조정하는 것이 좋습니다.
귀하의 경우에는 다음과 같이 실행해야 합니다:
findt 8:00 15:59 /path/to/dir -type f
코드는 다음과 같습니다.
#!/usr/bin/env bash
set -e
myname="${0##*/}"
from=-1
to=-1
property=%y
is_print=0
is_zero=0
is_delete=0
post_args=""
conj=-a
main() {
while [ "${1:0:1}" = "-" ]; do
options="${1:1}"
shift
while [ ${#options} -ne 0 ]; do
case "$options" in
h*)
print_help
exit 0;;
m*)
property=%y;;
c*)
property=%z;;
a*)
property=%x;;
b*)
property=%w;;
p*)
is_print=1;;
0*)
is_zero=1;;
d*)
is_delete=1;;
*)
print_error;;
esac
options="${options:1}"
done
done
from=`parse_time "$1"`
to=`parse_time "$2"`
shift 2
[ $from -gt $to ] && conj=-o
[ $is_delete -eq 0 ] && is_print=1
[ $is_print -eq 1 ] && post_args="-print"
[ $is_zero -eq 1 ] && post_args="-print0"
[ $is_delete -eq 1 ] && post_args="$post_args -delete"
find "$@" -exec bash -c '\
hm=`stat -c $4 "$0" | cut -c 12-16`; [ "${#hm}" -eq 0 ] && exit 1 ; \
t=$((60*10#`echo $hm | cut -c 1-2`+10#`echo $hm | cut -c 4-5`)); \
test \( $t -ge $1 \) $3 \( $t -le $2 \)' \
{} $from $to $conj $property \; $post_args
}
parse_time() {
time_string="$1"
[ ${#time_string} -eq 4 ] && time_string="0$time_string"
[[ "$time_string" =~ ^[0-2][0-9]:[0-5][0-9]$ ]] || print_error
{ value=$((60*10#${time_string:0:2}+10#${time_string:3:2})); } 2>/dev/null || print_error
[ $value -ge 1440 ] && print_error
printf '%s' $value
}
print_error() {
cat >&2 << EOF
${myname}: error parsing command line
Try '$myname -h' for more information.
EOF
exit 1
}
print_help() {
cat << EOF
USAGE
$myname [OPTION]... FROM TO [ARG]...
SYNOPSIS
Invokes \`find' command to list objects (files, directories, ...) modified,
changed or accessed between FROM and TO (inclusive). FROM and TO are times given
in 24-hour HH:MM or H:MM format (00:00 - 23:59). Modification date (day)
does not matter. If FROM is later than TO then the interval includes midnight.
OPTIONs
-h print this help and exit
-m use mtime (default)
-c use ctime
-a use atime (note: understand \`noatime' mount option etc.)
-b use birth time, \`stat -c %w'
(useless, see https://unix.stackexchange.com/a/91200)
If more than one ?time is specified, only the last one matters.
-p use \`-print' with \`find' (default)
-0 use \`-print0' instead
-d use \`-delete' with \`find' (non-POSIX)
-d is silent unless -p or -0 is also used.
ARGs
Arguments following TO are passed to \`find' as its initial arguments.
Specify paths and additional tests (e.g. \`-type f') here.
EXAMPLES
To list objects in /tmp modified during working hours:
$myname 7:00 14:59 /tmp
To list and delete big files accessed late at night in /home/foo
$myname -apd 23:30 4:30 /home/foo -typef -size +640M
LICENCE
Creative Commons CC0.
EOF
}
main "$@"
답변3
Linux 환경에서 명령을 시도해 볼 수 있습니다.
에게수정된 모든 파일 찾기오늘만
find . -mtime -1 -print
touch -t `date +%m%d0000` /tmp/$$
find /tmefndr/oravl01 -type f -newer /tmp/$$
rm /tmp/$$