12-27-2019
Hi Ravinder,
As long as a mv operation is performed on the same file system - as is the case here - that should not pose a problem, since mv then only manipulates directory data: A file name is nothing more than a directory entry, a pointer (a hard link) to the file itself.
When a process opens a file for reading, the operation system creates an entry (file descriptor) to represent that file and stores information about that opened file in memory. So then the directory entry is no longer used.
The mv operation is thus free to manipulate the directory entry.
So for the process that has opened and is reading the file, nothing changes as the directory data is being changed.
When it is done reading it just closes the file descriptor.
Also, the file list expanded by the glob is expanded before being passed to the awk script, so new file names are not passed to the script.
S.
These 2 Users Gave Thanks to Scrutinizer For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am on a HP-UX machine I have a directory called "/u01/blobs" and the files look like this:
ls -1
7398
7399
7400
I need to produce a comma delimited file with the following format:
filename,location/filename
i.e:
7398,/u01/blobs/7398
7399,/u01/blobs/7399
7400,/u01/blobs/7400
What... (3 Replies)
Discussion started by: NomDeGuerre
3 Replies
2. Shell Programming and Scripting
Hello guys, thank God that I found this forum.
I hope that someone can help me because I don't have any idea on how to start it. I know that for some of you this is a very simple task but I'm not as advance on shell scripting like many people out there.
I got this file with a permanent... (10 Replies)
Discussion started by: Shark Tek
10 Replies
3. Shell Programming and Scripting
Hello all.
I am new to this forum (and somewhat new to UNIX / LINUX - I started using ubuntu 1 year ago).:b:
I have the following problem that I have not been able to figure out how to take care of and I was wondering if anyone could help me out.:confused:
I have all of my music stored in... (7 Replies)
Discussion started by: marcozd
7 Replies
4. UNIX for Dummies Questions & Answers
Hi guys, I am a newbie here :wall:
I need a script that can search for a file in a directory and copy the contents of that file in a new file.
Please help me. :confused: Thanks in advance~ (6 Replies)
Discussion started by: zel2zel
6 Replies
5. Shell Programming and Scripting
I hope some one can help me
I have multiple files in a directory with out extension like as below mentioned. But i want to change all the file names along .DDMMYYYYHHMISS format. And all files should have same DDMMYYYYHHMISS.
Scenario:
direcory name = /vol/best/srcfiles
files in a... (4 Replies)
Discussion started by: hari001
4 Replies
6. Shell Programming and Scripting
I have to write a script to rename the every last sub-directory in a directory structure if the last sub-directory name doesn't contain "submitted".
eg:
given directory path:/u01/home/somedir
somedir can have many subdirectories and each subdirectory inturn has many subdirectories.
somedir... (3 Replies)
Discussion started by: ramse8pc
3 Replies
7. Shell Programming and Scripting
Hello All,
Can you help me in writing a script for reading the specific position data in a file and if that data found in that file that particular file should be renamed.
Ex: Folder : C:\\test
and Filename : CLSACK_112214.txt,CLSACK_112314.txt,CLSACK_112414.txt
Contents in the file would... (3 Replies)
Discussion started by: nanduedi
3 Replies
8. Shell Programming and Scripting
I am trying to use the two files shown below to either remove or rename contents in one of those files. If in file1.txt $5 matches $5 of file2.txt and the value in $1 of file1.txt is not "No Match" then that value is substituted for all values in $5 and $1 of file2.txt. If however in $1 ... (5 Replies)
Discussion started by: cmccabe
5 Replies
9. Shell Programming and Scripting
I have a specific set (all ending with .bam) of downloaded files in a directory /home/cmccabe/Desktop/NGS/API/2-15-2016. What I am trying to do is use a match to $2 in name to rename the downloaded files. To make things a more involved the date of the folder is unique and in the header of name... (1 Reply)
Discussion started by: cmccabe
1 Replies
10. UNIX for Beginners Questions & Answers
Hi All,
Just started learning unix and stuck into below issue.
Suppose i have folder structure as below.
Dir1/Dir2/Dir3/File1.msg
I am looking to rename the file name from File1.msg to File2.msg but from the parent Dir1
From Dir3 i can easily run the command like
mv File1.msg... (2 Replies)
Discussion started by: Gurjeet Singh
2 Replies
OPEN(2) System Calls Manual OPEN(2)
NAME
open - open a file for reading or writing, or create a new file
SYNOPSIS
#include <sys/types.h>
#include <fcntl.h>
int open(const char *path, int flags [, mode_t mode])
DESCRIPTION
Open opens the file path for reading and/or writing, as specified by the flags argument and returns a descriptor for that file. The flags
argument may indicate the file is to be created if it does not already exist (by specifying the O_CREAT flag), in which case the file is
created with mode mode as described in chmod(2) and modified by the process' umask value (see umask(2)).
Path is the address of a string of ASCII characters representing a path name, terminated by a null character. The flags specified are
formed by or'ing the following values
O_RDONLY open for reading only
O_WRONLY open for writing only
O_RDWR open for reading and writing
O_NONBLOCK do not block on open
O_APPEND append on each write
O_CREAT create file if it does not exist
O_TRUNC truncate size to 0
O_EXCL error if create and file exists
Opening a file with O_APPEND set causes each write on the file to be appended to the end. If O_TRUNC is specified and the file exists, the
file is truncated to zero length. If O_EXCL is set with O_CREAT, then if the file already exists, the open returns an error. This can be
used to implement a simple exclusive access locking mechanism. If O_EXCL is set and the last component of the pathname is a symbolic link,
the open will fail even if the symbolic link points to a non-existent name. If the O_NONBLOCK flag is specified and the open call would
result in the process being blocked for some reason, the open returns immediately.
Upon successful completion a non-negative integer termed a file descriptor is returned. The file pointer used to mark the current position
within the file is set to the beginning of the file.
The new descriptor is set to remain open across execve system calls; see close(2).
The system imposes a limit on the number of descriptors open simultaneously by one process.
ERRORS
The named file is opened unless one or more of the following are true:
[ENOTDIR] A component of the path prefix is not a directory.
[ENAMETOOLONG] The path name exceeds PATH_MAX characters.
[ENOENT] O_CREAT is not set and the named file does not exist.
[ENOENT] A component of the path name that must exist does not exist.
[EACCES] Search permission is denied for a component of the path prefix.
[EACCES] The required permissions (for reading and/or writing) are denied for the named file.
[EACCES] O_CREAT is specified, the file does not exist, and the directory in which it is to be created does not permit writing.
[EACCES] A device to be opened for writing is physically write protected.
[ELOOP] Too many symbolic links were encountered in translating the pathname. (Minix-vmd)
[EISDIR] The named file is a directory, and the arguments specify it is to be opened for writing.
[EROFS] The named file resides on a read-only file system, and the file is to be modified.
[EMFILE] The system limit for open file descriptors per process has already been reached.
[ENFILE] The system file table is full.
[ENXIO] The named file is a character special or block special file, and the device associated with this special file does not
exist.
[ENOSPC] O_CREAT is specified, the file does not exist, and the directory in which the entry for the new file is being placed cannot
be extended because there is no space left on the file system containing the directory.
[ENOSPC] O_CREAT is specified, the file does not exist, and there are no free inodes on the file system on which the file is being
created.
[EIO] An I/O error occurred while making the directory entry or allocating the inode for O_CREAT.
[EFAULT] Path points outside the process's allocated address space.
[EEXIST] O_CREAT and O_EXCL were specified and the file exists.
SEE ALSO
chmod(2), close(2), dup(2), fcntl(2), lseek(2), read(2), write(2), umask(2).
4th Berkeley Distribution May 14, 1986 OPEN(2)