DTFILE_COPY(1)

πŸ“¦
version 2.5.3 Β· 2 versions
, in nixos 26.05

πŸ’– NAME πŸ’–

okay so bestie, <pink>dtfile_copy</pink> is literally the CDE File Manager copy utility. that's it, that's the vibe. 🫢


✨ SYNOPSIS ✨

dtfile_copy [options ...]  [source_folder target_folder]

🌸 DESCRIPTION 🌸

so the CDE File Manager copy utility? it recursively copies folders and everything inside them, subfolders included, no cap. πŸ¦‹

its default behavior is to make a full duplicate of source_folder over in target_folder's location. which means, lowkey:

  • things that exist in the target but not in the source get deleted πŸ’€
  • things that exist in the source but not in the target get copied ✨
  • things that exist in both get replaced if they're different πŸ”₯

and how does it know if two things are "identical"? it compares both the timestamp and the size of the two objects. that's the check, periodt.

the File Manager calls this utility every time a user asks for a folder to be moved or copied, so its use is totally transparent to the user β€” like they never even see it. 🧚 but you can also run it yourself explicitly from a shell window, and it has a whole bunch of options to tweak that default behavior. main character energy, honestly. πŸ‘‘


πŸ’… OPTIONS πŸ’…

here's everything you can throw at it from the command line:

  • -dontDoIt β€” writes a description of the actions that would be performed into a dialog window, but does not modify any objects. pure window shopping, bestie. πŸ™ˆ
  • -keepNew β€” if an object exists in both the source and target folders, don't replace the target object when it's newer than the source object.
  • -keepOld β€” if an object exists in both folders, rename the existing target object by appending .old to the name before copying the source over. cute little keepsake. πŸŽ€
  • -dontDelete β€” if an object exists in the target folder but not the source, don't delete the target object.
  • -dontAdd β€” if an object exists in the source folder but not the target, don't copy the source file.
  • -dontReplace β€” if an object exists in both the source and target folders, don't replace the target object.
  • -dontRecur β€” only process the files in the source folder, don't touch any subfolders.
  • -keepLinks β€” if the target object is a symbolic link to the source object, keep the link instead of replacing that link with a copy of the source object. πŸ”—
  • -keepCopies β€” if a source object is a symbolic link and the target object is a copy of the object that the source link points at (i.e. it has the same size and timestamp), keep the target object instead of replacing it with a symbolic link.
  • -forceCopies β€” if an object exists in both folders, copy the source object even if the timestamps and sizes are equal. no vibe check, just force. πŸ’€
  • -linkFolders β€” if a folder exists in the source but not the target, create a symbolic link in the target pointing to the source, instead of copying the source folder.
  • -linkFiles β€” if a file exists in the source but not the target, create a symbolic link in the target pointing to the source, instead of copying the source file.
  • -copyFolders β€” if the source is a symbolic link to a folder, make a copy of the folder that the source link points at, instead of just copying the link.
  • -copyFiles β€” if the source is a symbolic link to a file, makes a copy of the file that the source link points at, instead of just copying the link.
  • -copyTop β€” if the target folder doesn't exist, create one. ✨
  • -move β€” after a successful copy operation, remove the source folder.
  • -confirmReplace β€” if an object exists in both the source and target directories, pop up a dialog giving a choice of actions before proceeding.
  • -confirmErrors β€” if an error happens while processing an object, pop up a dialog describing the error before proceeding.
  • -popDown β€” after a successful copy or move operation, automatically remove the dtfile_copy dialog after the interval specified by the delay option.
  • -delay β€” the time, in microseconds, that the dtfile_copy dialog is displayed after a successful copy operation is completed.
  • -slow β€” pause for a preset time interval between each file operation. snail mode fr fr. 🐌

🌈 EXAMPLES 🌈

dtfile /u/aUser/FolderA /u/aUser/FolderA.backup

the folder /u/aUser/FolderA.backup gets made into a duplicate of /u/aUser/FolderA. and the name of each object processed is written to a dialog window, along with an indication of the operation that was performed. iconic. πŸ‘‘


πŸ¦‹ RESOURCES πŸ¦‹

here's the whole resource lineup, bestie β€” name, class, type, default, all of it:

  • dontDoIt β€” class DontDoIt, type XmRBoolean, default False
  • keepNew β€” class KeepNew, type XmRBoolean, default False
  • keepOld β€” class KeepOld, type XmRBoolean, default False
  • dontDelete β€” class DontDelete, type XmRBoolean, default False
  • dontAdd β€” class DontAdd, type XmRBoolean, default False
  • dontReplace β€” class DontReplace, type XmRBoolean, default False
  • dontRecur β€” class DontRecur, type XmRBoolean, default False
  • keepLinks β€” class KeepLinks, type XmRBoolean, default False
  • keepCopies β€” class KeepCopies, type XmRBoolean, default False
  • forceCopies β€” class ForceCopies, type XmRBoolean, default False
  • linkFolders β€” class LinkFolders, type XmRBoolean, default False
  • linkFiles β€” class LinkFiles, type XmRBoolean, default False
  • copyFolders β€” class CopyFolders, type XmRBoolean, default False
  • copyFiles β€” class CopyFiles, type XmRBoolean, default False
  • copyTop β€” class CopyTop, type XmRBoolean, default False
  • move β€” class move, type XmRBoolean, default False
  • confirmReplace β€” class ConfirmReplace, type XmRBoolean, default False
  • confirmErrors β€” class ConfirmErrors, type XmRBoolean, default False
  • popDown β€” class PopDown, type XmRBoolean, default False
  • delay β€” class Delay, type XmRBoolean, default False
  • toggle β€” class Toggle, type XmRBoolean, default True
  • slow β€” class Slow, type XmRBoolean, default False

πŸŽ€ and now every single one explained πŸŽ€

Dtfile*dontDoIt:

writes a description of the actions that would be performed to a dialog window, but does not modify any objects.

Dtfile*keepNew:

if an object exists in the source and target folders, don't replace the target object if it's newer than the source object.

Dtfile*keepOld:

if an object exists in the source and target folders, rename the existing target object by appending .old to the name before copying the source.

if the target object is a symbolic link to the source object, keep the link instead of replacing the link with a copy of the source object.

Dtfile*keepCopies:

if a source object is a symbolic link and the target object is a copy of the object that the source link points at (i.e. has the same size and timestamp), keep the target object instead of replacing it with a symbolic link.

Dtfile*forceCopies:

if an object exists in the source and target folders, copy the source object even if the timestamps and sizes are equal.

Dtfile*linkFolders:

if a folder exists in the source but not the target, create a symbolic link in the target pointing to the source instead of copying the source folder.

Dtfile*linkFiles:

if a file exists in the source but not the target, create a symbolic link in the target pointing to the source instead of copying the source file.

Dtfile*copyFolders:

if the source is a symbolic link to a folder, make a copy of the folder that the source link points at, instead of just copying the link.

Dtfile*copyFiles:

if the source is a symbolic link to a file, makes a copy of the file that the source link points at, instead of just copying the link.

Dtfile*copyTop:

if the target folder doesn't exist, create one.

Dtfile*move:

following a successful copy operation, remove the source folder.

Dtfile*confirmReplace:

if an object exists in the source and target directories, display a dialog giving a choice of actions before proceeding.

Dtfile*confirmErrors:

if an error occurs processing an object, display a dialog describing the error before proceeding.

Dtfile*popDown:

following a successful copy or move operation, automatically remove the dtfile_copy dialog after the interval specified by the delay option.

Dtfile*delay:

the time, in microseconds, that the dtfile_copy dialog is displayed after a successful copy operation is completed.

Dtfile*slow:

pause for a preset time interval between each file operation.


heads up bestie: this one's flag-city. twenty-one options, and toggle lives in the resources list with a default of True while everything else defaults to False. keep that in mind before you start flipping things. πŸ’œ

okay that's the whole page, you ate that πŸ’… the manual name stamped on the footer is literally dtfile_copy(user cmd) and there's no date or version to report on this one, so that's all she wrote β€” mwah πŸŽ€πŸ’–

πŸ“¦ where this page comes from