Sponsored Content
Full Discussion: Is `mv dir dir2` atomic ?
Top Forums UNIX for Dummies Questions & Answers Is `mv dir dir2` atomic ? Post 302170830 by Perderabo on Tuesday 26th of February 2008 10:42:52 PM
Old 02-26-2008
I'm really only familiar with the HP-UX version, but I'm guessing that Linux version must be similar. HP's mvdir is confined to operating in a filesystem...never between filesystems. To understand it, consider the first unix implemention of it... If you have /parent/A which has a lot of files in it and you move it to /parent/B, the original version would invoke the link system call and link A to B. At this point, both A and B exist and they are just two names to the same directory. Then, as soon as possible, it would unlink A. This would leave just B. The operation took two very quick system calls. This was NOT atomic. Between the system calls, the filesystem was in an illegal state. A and B should not be links to the same directory even for a millisecond. Today, instead of two system calls, we use just one...and rename(). This is absolutely atomic. For all intents and purposes A just morphs into B. A and B must be in the same filesystem, but not necessarily have the same exact parent as I have indicated here.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

a script to clone a dir tree, & overwrite the dir struct elsewhere?

hi all, i'm looking for a bash or tcsh script that will clone an empty dir tree 'over' another tree ... specifically, i'd like to: (1) specify a src directory (2) list the directory tree/hiearchy beneath that src dir, w/o files -- just the dirs (3) clone that same, empty dir hierarchy to... (2 Replies)
Discussion started by: OpenMacNews
2 Replies

2. Programming

Atomic lock file creation

Hello, I need to implement a locking system in C. My problem is how to make the check if the lock file exist and locking it atomic operation. I want to make something like this: FILE* lock_fname; lock_fname = fopen ( "file.lock", "r"); /*check if file exsists*/ if (lock_fname) { fclose... (7 Replies)
Discussion started by: tsurko
7 Replies

3. UNIX and Linux Applications

CPIO Problem, copy to the root dir / instead of current dir

HI all, I got a CPIO archive that contains a unix filesystem that I try to extract, but it extract to the root dir / unstead of current dir, and happily it detects my file are newer otherwise it would have overwrited my system's file! I tried all these commands cpio -i --make-directories <... (2 Replies)
Discussion started by: nekkro-kvlt
2 Replies

4. Shell Programming and Scripting

A script to find dir, delete files in, and then del dir?

Hello!! I have directories from 2008, with files in them. I want to create a script that will find the directoried from 2008 (example directory: drwxr-xr-x 2 isplan users 1024 Nov 21 2008 FILES_112108), delete the files within those directories and then delete the directories... (3 Replies)
Discussion started by: bigben1220
3 Replies

5. UNIX for Dummies Questions & Answers

How to list all files in dir and sub-dir's recursively along with file size?

I am very new to unix as well as shell scripting. I have to write a script for the following requirement. In have to list all the files in directory and its sub directories along with file path and size of the file Please help me in this regard and many thanks in advance. (3 Replies)
Discussion started by: nmakkena
3 Replies

6. UNIX for Dummies Questions & Answers

system calls and atomic operation

Are system calls atomic operations? Is a system call can be interrupted? (2 Replies)
Discussion started by: vistastar
2 Replies

7. Shell Programming and Scripting

KSH - Find paths of multiple files in CC (dir and sub-dir))

Dear Members, I have a list of xml files like abc.xml.table prq.xml.table ... .. . in a txt file. Now I have to search the file(s) in all directories and sub-directories and print the full path of file in a output txt file. Please help me with the script or command to do so. ... (11 Replies)
Discussion started by: Yoodit
11 Replies

8. Linux

Atomic Operations

Hello I am a newbie in linux. Please tell me what are atomic operations in Linux. IS i++ a atomic oparation?? Please help.. (3 Replies)
Discussion started by: aditya08
3 Replies

9. AIX

Assign read write permission to the user for specific dir and it's sub dir and files in AIX

I have searched this quite a long time but couldn't find the right method for me to use. I need to assign read write permission to the user for specific directories and it's sub directories and files. I do not want to use ACL. I do not want to assign user the same group of that directories too.... (0 Replies)
Discussion started by: blinkingdan
0 Replies
link(1) 						      General Commands Manual							   link(1)

NAME
link, unlink - Creates an additional directory entry for an existing file SYNOPSIS
link file1 file2 unlink file STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: link: XCU5.0 unlink: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. DESCRIPTION
The link command performs the link() system call to create an additional directory entry for an existing file, file1. In effect, the underlying file then has two names, file1 and file2 (either of these arguments can be a pathname). The old and new entries share equal access rights to the underlying file. The unlink command performs the unlink() system call to remove a link to file created by link. The unlink command removes the directory entry specified by the file parameter and, if the entry is a hard link, decrements the link count of the file referenced by the link. You should be familiar with the link() and unlink() system calls before you use these commands. The link and unlink commands do not issue error messages when the associated system call is unsuccessful. NOTES
The link and unlink commands cannot be used to link and unlink directories. EXIT STATUS
The link and unlink commands both exit with the following: The link() or unlink() system call succeeded. Too few or too many arguments specified. The link() or unlink() system call failed. SEE ALSO
Commands: fsck(8), ln(1) Functions: link(2), unlink(2) link(1)
All times are GMT -4. The time now is 03:45 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy