Unixutils-1.22: A crude interface between Haskell and Unix-like operating systemsSource codeContentsIndex
System.Unix.Directory
Synopsis
find :: FilePath -> IO [(FilePath, FileStatus)]
removeRecursiveSafely :: FilePath -> IO ()
unmountRecursiveSafely :: FilePath -> IO ()
renameFileWithBackup :: FilePath -> FilePath -> IO ()
withWorkingDirectory :: FilePath -> IO a -> IO a
withTemporaryDirectory :: FilePath -> (FilePath -> IO a) -> IO a
mkdtemp :: FilePath -> IO FilePath
Documentation
find :: FilePath -> IO [(FilePath, FileStatus)]Source
Traverse a directory and return a list of all the (path, fileStatus) pairs.
removeRecursiveSafely :: FilePath -> IO ()Source
Recursively remove a directory contents on a single file system. The adjective "Safely" refers to these features: 1. It will not follow symlinks 2. If it finds a directory that seems to be a mount point, it will attempt to unmount it up to five times. If it still seems to be a mount point it gives up 3. It doesn't use procmounts, which is ambiguous or wrong when you are inside a chroot.
unmountRecursiveSafely :: FilePath -> IO ()Source
Like removeRecursiveSafely but doesn't remove any files, just unmounts anything it finds mounted. Note that this can be much slower than Mount.umountBelow, use that instead.
renameFileWithBackup :: FilePath -> FilePath -> IO ()Source
Rename src to dst, and if dst already exists move it to dst~. If dst~ exists it is removed.
withWorkingDirectory :: FilePath -> IO a -> IO aSource
temporarily change the working directory to |dir| while running |action|
withTemporaryDirectory :: FilePath -> (FilePath -> IO a) -> IO aSource
create a temporary directory, run the action, remove the temporary directory the first argument is a template for the temporary directory name the directory will be created as a subdirectory of the directory returned by getTemporaryDirectory the temporary directory will be automatically removed afterwards. your working directory is not altered
mkdtemp :: FilePath -> IO FilePathSource
Produced by Haddock version 2.6.1