How to remove temp files without changing the directory's modification timestamp?
I work on testcase, each of being a subdirectory of ~/test
. It's convenient to see which were the testcases I worked most recently using something like ls -rtl
. Now I'd like to remove certain temporary files from the test directories; alas, that would change the timestamp of the directories.
Is it possible to remove a file from a directory without changing the directory's modification timestamp?
directory timestamps
add a comment |
I work on testcase, each of being a subdirectory of ~/test
. It's convenient to see which were the testcases I worked most recently using something like ls -rtl
. Now I'd like to remove certain temporary files from the test directories; alas, that would change the timestamp of the directories.
Is it possible to remove a file from a directory without changing the directory's modification timestamp?
directory timestamps
can the temporary files be placed somewhere else? because the filename is part of the directory, not the file itself, so when a filename goes away...
– thrig
May 22 '18 at 20:20
add a comment |
I work on testcase, each of being a subdirectory of ~/test
. It's convenient to see which were the testcases I worked most recently using something like ls -rtl
. Now I'd like to remove certain temporary files from the test directories; alas, that would change the timestamp of the directories.
Is it possible to remove a file from a directory without changing the directory's modification timestamp?
directory timestamps
I work on testcase, each of being a subdirectory of ~/test
. It's convenient to see which were the testcases I worked most recently using something like ls -rtl
. Now I'd like to remove certain temporary files from the test directories; alas, that would change the timestamp of the directories.
Is it possible to remove a file from a directory without changing the directory's modification timestamp?
directory timestamps
directory timestamps
asked May 22 '18 at 20:17
MichaelMichael
22625
22625
can the temporary files be placed somewhere else? because the filename is part of the directory, not the file itself, so when a filename goes away...
– thrig
May 22 '18 at 20:20
add a comment |
can the temporary files be placed somewhere else? because the filename is part of the directory, not the file itself, so when a filename goes away...
– thrig
May 22 '18 at 20:20
can the temporary files be placed somewhere else? because the filename is part of the directory, not the file itself, so when a filename goes away...
– thrig
May 22 '18 at 20:20
can the temporary files be placed somewhere else? because the filename is part of the directory, not the file itself, so when a filename goes away...
– thrig
May 22 '18 at 20:20
add a comment |
2 Answers
2
active
oldest
votes
You'll have to reset the timestamp on the directory after removing the files. Assuming GNU tools, something like this should work:
mtime=$(stat -c %y dir) # get the timestamp, store in $mtime
rm dir/somefile dir/someotherfile # do whatever you need
touch -d "$mtime" dir # set the timestamp back
That resets the modification (mtime
) and access (atime
) timestamps on the directory to the original modification timestamp, but also sets the change timestamp (ctime
) to the current time. Changing the ctime
is unavoidable, but you probably don't care about it or atime
.
add a comment |
The touch
command provides the -r
option which allows you to touch a file with the same timestamps as a reference file. As such, you could do this:
touch -r /dir/somefile /tmp/_thetimestamps # save the timestamps in /tmp/_thetimestamps
rm /dir/somefile # do whatever you need
touch -r /tmp/_thetimestamps /dir # set the timestamps back
Linux Man:
-r, --reference=FILE
use this file's times instead of current time
Unix Man:
-r Use the access and modifications times from the specified file
instead of the current time of day.
New contributor
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f445419%2fhow-to-remove-temp-files-without-changing-the-directorys-modification-timestamp%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You'll have to reset the timestamp on the directory after removing the files. Assuming GNU tools, something like this should work:
mtime=$(stat -c %y dir) # get the timestamp, store in $mtime
rm dir/somefile dir/someotherfile # do whatever you need
touch -d "$mtime" dir # set the timestamp back
That resets the modification (mtime
) and access (atime
) timestamps on the directory to the original modification timestamp, but also sets the change timestamp (ctime
) to the current time. Changing the ctime
is unavoidable, but you probably don't care about it or atime
.
add a comment |
You'll have to reset the timestamp on the directory after removing the files. Assuming GNU tools, something like this should work:
mtime=$(stat -c %y dir) # get the timestamp, store in $mtime
rm dir/somefile dir/someotherfile # do whatever you need
touch -d "$mtime" dir # set the timestamp back
That resets the modification (mtime
) and access (atime
) timestamps on the directory to the original modification timestamp, but also sets the change timestamp (ctime
) to the current time. Changing the ctime
is unavoidable, but you probably don't care about it or atime
.
add a comment |
You'll have to reset the timestamp on the directory after removing the files. Assuming GNU tools, something like this should work:
mtime=$(stat -c %y dir) # get the timestamp, store in $mtime
rm dir/somefile dir/someotherfile # do whatever you need
touch -d "$mtime" dir # set the timestamp back
That resets the modification (mtime
) and access (atime
) timestamps on the directory to the original modification timestamp, but also sets the change timestamp (ctime
) to the current time. Changing the ctime
is unavoidable, but you probably don't care about it or atime
.
You'll have to reset the timestamp on the directory after removing the files. Assuming GNU tools, something like this should work:
mtime=$(stat -c %y dir) # get the timestamp, store in $mtime
rm dir/somefile dir/someotherfile # do whatever you need
touch -d "$mtime" dir # set the timestamp back
That resets the modification (mtime
) and access (atime
) timestamps on the directory to the original modification timestamp, but also sets the change timestamp (ctime
) to the current time. Changing the ctime
is unavoidable, but you probably don't care about it or atime
.
edited May 22 '18 at 20:35
answered May 22 '18 at 20:29
ilkkachuilkkachu
58.7k892165
58.7k892165
add a comment |
add a comment |
The touch
command provides the -r
option which allows you to touch a file with the same timestamps as a reference file. As such, you could do this:
touch -r /dir/somefile /tmp/_thetimestamps # save the timestamps in /tmp/_thetimestamps
rm /dir/somefile # do whatever you need
touch -r /tmp/_thetimestamps /dir # set the timestamps back
Linux Man:
-r, --reference=FILE
use this file's times instead of current time
Unix Man:
-r Use the access and modifications times from the specified file
instead of the current time of day.
New contributor
add a comment |
The touch
command provides the -r
option which allows you to touch a file with the same timestamps as a reference file. As such, you could do this:
touch -r /dir/somefile /tmp/_thetimestamps # save the timestamps in /tmp/_thetimestamps
rm /dir/somefile # do whatever you need
touch -r /tmp/_thetimestamps /dir # set the timestamps back
Linux Man:
-r, --reference=FILE
use this file's times instead of current time
Unix Man:
-r Use the access and modifications times from the specified file
instead of the current time of day.
New contributor
add a comment |
The touch
command provides the -r
option which allows you to touch a file with the same timestamps as a reference file. As such, you could do this:
touch -r /dir/somefile /tmp/_thetimestamps # save the timestamps in /tmp/_thetimestamps
rm /dir/somefile # do whatever you need
touch -r /tmp/_thetimestamps /dir # set the timestamps back
Linux Man:
-r, --reference=FILE
use this file's times instead of current time
Unix Man:
-r Use the access and modifications times from the specified file
instead of the current time of day.
New contributor
The touch
command provides the -r
option which allows you to touch a file with the same timestamps as a reference file. As such, you could do this:
touch -r /dir/somefile /tmp/_thetimestamps # save the timestamps in /tmp/_thetimestamps
rm /dir/somefile # do whatever you need
touch -r /tmp/_thetimestamps /dir # set the timestamps back
Linux Man:
-r, --reference=FILE
use this file's times instead of current time
Unix Man:
-r Use the access and modifications times from the specified file
instead of the current time of day.
New contributor
edited 20 mins ago
New contributor
answered 33 mins ago
DaveDave
1011
1011
New contributor
New contributor
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f445419%2fhow-to-remove-temp-files-without-changing-the-directorys-modification-timestamp%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
can the temporary files be placed somewhere else? because the filename is part of the directory, not the file itself, so when a filename goes away...
– thrig
May 22 '18 at 20:20