This is the mail archive of the
mailing list for the Cygwin project.
Re: find command seems to lock files
On Mon, Aug 19, 2019 at 6:50 PM Andrey Repin <email@example.com> wrote:
> Greetings, Morten Kjærulff!
> >> > If the application in question creates and deletes the parent
> >> > directory, as well as the leaf file, then things would be left
> >> > around unexpectedly.
> >> The question was just if the file is locked.
> >> > So would use of find trigger a virus scanner, which in turn might
> >> > hold on to the file and prevent its deletion?
> >> That's how some realtime scanners work. They have hooks in the file API
> >> and if some other process opens a file these scanners open the file as
> >> well, typically without FILE_SHARE_DELETE, which Cygwin uses by default.
> >> Corinna
> >> --
> >> Corinna Vinschen
> >> Cygwin Maintainer
> > I forgot to say that I run the find command on my own PC, and the
> > application runs on a server, which I have 'net use' its disk.
> > Would it be the virus scanner on my PC or on the server?
> > Any idea of a different way to get the age of the file? (I am sure I
> > cannot change the virus scanner).
> To begin with, the results of your `find` calls will be at least 5 seconds
> stale over CIFS share with default settings.
> Said that, you could safely write something like
> find /xx -type а -iname "zzz" -mtime +10s -execdir 'msg * "Achtung programme crash boom!"'
> In regard to antivirus,
> 1. first make sure your local AV does not scan network directories by default.
> This is a gigantic usability issue for multiple reasons and normally is never done.
> 2. if possible, check what exactly happens when your program loсks up.
> Yes, as said above, find will lock /directories/ it is scanning.
> This is how Windows filesystem API works.
> But it should not lock files by itself.
> With best regards,
> Andrey Repin
> Monday, August 19, 2019 19:36:25
> Sorry for my terrible english...
I guess that the reason find opens the file (and thereby trigger
antivirus) is because I print the files timestamp (-printf '%A+\n'),
If I just printed the filename, the file would not be opened, right?
find /xx -type f -iname "zzz" -mtime +10s -execdir 'msg * "Achtung
programme crash boom!"'
not open the file to get the timestamp?
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple